Tag: react native

如何使npm脚本build立正确的环境?

我正在构build一个react-native项目,并使用react-native-config库在登台和生产环境之间切换。 我有我的环境定义在单独的.env文件(.env.dev,.env.staging,.env.prod),我有我的package.json中定义的以下npm脚本 "scripts": { "android-dev": "ENVFILE=.env.dev react-native run-android", "android-staging": "ENVFILE=.env.staging react-native run-android", "android-prod": "ENVFILE=.env.prod react-native run-android", "android-release": "react-native run-android –variant=release", "build-android-staging": "export ENVFILE=.env.staging && cd android && ./gradlew assembleRelease && cd ..", "build-android-prod": "export ENVFILE=.env.prod && cd android && ./gradlew assembleRelease && cd .." } 在我的build.gradle中,我放置了以下内容 project.ext.envConfigFiles = [ debug: ".env.staging", release: ".env.prod", anycustombuildlowercase: ".env.staging", […]

React Native package.json版本

我有一个月前创build的React Native项目,使用create-react-native-app命令。 package.json内容如下: { "name": "TestApp2", "version": "0.1.0", "private": true, "devDependencies": { "react-native-scripts": "1.1.0", "jest-expo": "~19.0.0", "react-test-renderer": "16.0.0-alpha.12" }, "main": "./node_modules/react-native-scripts/build/bin/crna-entry.js", "scripts": { "start": "react-native-scripts start", "eject": "react-native-scripts eject", "android": "react-native-scripts android", "ios": "react-native-scripts ios", "test": "node node_modules/jest/bin/jest.js –watch" }, "jest": { "preset": "jest-expo" }, "dependencies": { "expo": "^19.0.0", "react": "16.0.0-alpha.12", "react-native": "^0.46.1" } } […]

如何确保没有导入模块的多个实例

目前正在制作一个RN应用程序,我将把它与Google Analytics和Firebase进行整合。 我将使用这个模块: https : //github.com/idehub/react-native-google-analytics-bridge 我正在构build一个包装类/模块,将联系每个提供商,以便我可以在未来轻松扩展自己的模块。 我的结构如下(每个类扩展了其他):React Component – > BaseComponent – >(Specific Implementation) – > ScreenComponent 由于一个屏幕可以有多个组件,我将把分析包装器放在我的BaseComponent中,将有多个调用我正在构build的分析模块。 对于Java开发中的这个require / exports,我还有点新意,所以对于这个模块来说,会有多个实例创build多个会话。 我正在考虑使分析包装器成为一个全局对象,以确保设置代码只运行一次,并保持会话。 任何input赞赏。

npm运行android反应本地给予build立错误

运行react-native run-android : JS服务器已经在运行。 在设备上构build和安装应用程序(cd android && ./gradlew installDebug)… 失败:生成失败,出现exception。 什么地方出了错: configuration根项目“推送器”时出现问题。 无法parsingconfiguration':classpath'的所有依赖关系。 无法下载protobuf-java.jar(com.google.protobuf:protobuf-java:2.5.0)无法获取资源https://jcenter.bintray.com/com/google/protobuf/protobuf-java/2.5。 0 / protobuf-java-2.5.0.jar '。 无法GET'https: //jcenter.bintray.com/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar '。 sun.security.validator.ValidatorException:找不到可信的证书 尝试:运行–stacktrace选项来获取堆栈跟踪。 运行–info或–debug选项来获得更多的日志输出。 构build失败 我已经安装了SDK工具,并且已经正确回答了本地文档,但是仍然遇到了麻烦。 我正在使用Ubuntu 16。

构buildReactJS和React本地混合应用程序

我有一个项目,我将需要创build一个共享代码环境来反应和反应原生。 我知道大多数情况下,你不能在两者之间共享表示组件,但我愿意分享一些核心逻辑以及单一代码库中的应用程序结构。 当然,由于React和React Native的打包方式,有一些捕获,我提到的一些解决scheme。 这个想法是使用类似于这个博客文章的逻辑: http : //jkaufman.io/react-web-native-codesharing/ 为了不必担心创build整个构build过程,我创build了一个使用cli来create-react-app和react-native (来自react-native-cli )的初学者包。 https://github.com/ReyHaynes/react-redux-web-native 很明显,使用这种方法会遇到一些问题,但是如果你们可以让我知道这个过程中的一些问题吗? 我很乐意听到他们! 另外,如果您有时间尝试混合构build并查看问题,我也很乐意听到这一点。

将节点升级到v8.9.0后,在React Native中require()中断

在我的React Native应用程序中,我试图require一些静态的PNG缩略图。 根据React Native文档,我使用require加载它们:ie: <View> <TouchableOpacity onPress={() => onPressHandler()}> <Image style={styles.thumbnail} source={require('./toner.png')} /> </TouchableOpacity> <Text style={styles.title}>{props.title}</Text> </View> 这工作正常我的家用机器上使用节点v7.6.0。 但是,它使用Node v8.9.0在我的工作机器上抛出错误。 错误: 无法parsing模块“./toner.png”。 它抱怨该模块不存在,但它! 我猜这是打破节点v8.9.0的东西,但我不积极。 任何想法如何补救将不胜感激!

不同版本的反应和React本机会导致循环依赖

我有一个关于版本约束的问题。 首先,我试图安装npm i react-native-message-bar –save 但是后来我得到了一个UNMET PEER DEPENDENCY react@16.1.0 Unmet Peer dependency : UNMET PEER DEPENDENCY react@16.1.0 所以我做了: npm install react@16.1.0但是我得到了: UNMET PEER DEPENDENCY react@16.1.0 npm WARN react-native@0.50.3 requires a peer of react@16.0.0 but none was installed. 所以我有这样的感觉,我正在运行到循环依赖。 这是否意味着我无法使用react-native-message-bar 。 与当前版本的反应? 我想就如何解决这个问题提出一些build议。

套接字不能用于使用ws的React native和Node.js服务器

我正尝试使用套接字将我的后端(node.js服务器)连接到前端(反应原生应用程序)。 但问题是代码永远不会进入io.on('连接',…)。 即套接字连接没有build立。 任何帮助表示赞赏。 这是客户端代码: import React, { Component } from 'react'; import { Alert, Button, Text, View } from 'react-native'; export default class App extends Component { constructor(props) { super(props); const ws = new WebSocket('ws://localhost:3000'); console.log("This is client side Web socket.") ws.onopen = () => { console.log("Its connected") ws.send('something'); // send a message }; […]

如何为http状态码发送自定义错误信息与node.js

我正在使用node.js进行用户authentication的基于rest的api。 我想发送一个自定义的错误消息更具描述性,如“不正确的用户名/密码组合”。 在演示文稿方面,我使用fetch和redux-saga来反应原生。 这里是用于将用户名/密码发送到其余层并接收返回的http错误消息的redux-saga代码: export const login = ({userName, password}) => { return fetch(globals.BASE_URL + `/api/login`, { method : 'POST', headers : { 'Accept' : 'application/json', 'Content-Type' : 'application/json' }, body: JSON.stringify({ userName: userName, password: password }) }); } const fetchLoginStatus = function* (action) { const response = yield call(login, action); try { if (response.status […]

如何在React Native中使用节点模块

我是React Native的新手,想使用我正在玩的React Native应用程序中的节点模块。 我想添加的节点模块是这样的: https : //www.npmjs.com/package/swisseph 所以我进入了项目文件夹,并运行npm install swisseph 在应用程序源代码中,我添加了这个: var swisseph = require ('swisseph'); 我跑了项目,我得到这个错误: Invariant Violation: Application AwesomeProject has not been registered. This is either due to a require() error during initialisation or failure to call AppRegistry.registerComponent. React Native中如何使用节点模块? index.io.js文件具有以下代码: /** * Sample React Native App * https://github.com/facebook/react-native */ 'use strict'; var […]