从react-native 0.26升级到0.29(并运行react-native升级)后,我在android调试器中收到以下错误:
Got JS Exception: ReferenceError: Can't find variable: process
Run Code Online (Sandbox Code Playgroud)
并在Android模拟器中的此错误消息
java.lang.RunTimeException: ReferenceError: can't find variable process
(http://10.0.2.2:8081/index.android.bundle (...)
Run Code Online (Sandbox Code Playgroud)
我没有更改任何我的应用程序javascript自升级,所有运行没有错误之前所以我假设问题不在javascript中,而是反应版本的更改已删除'进程'变量?
即使加载一个空的索引文件(一个什么都不做的反应组件)仍会导致相同的错误.
我正在按照已签名的apk的说明进行反应原生https://facebook.github.io/react-native/docs/signed-apk-android.html
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
Run Code Online (Sandbox Code Playgroud)
但是,在设置gradle变量的步骤中,我无法~/.gradle/gradle.properties在mac上找到该文件.我看到一个~/.gradle文件夹,但我没有看到gradle.properties那里的文件,我应该创建一个?或者,我/android/gradle.properties在项目文件夹中看到一个文件 - 我应该更新那里的gradle变量吗?
另外,我应该MYAPP用我的应用程序名称替换关键字吗?如果是这样,我在哪里可以找到替换它的键 - 是基于某种设置?例如FOOAPP_RELEASE_STORE_FILE......
因此,我想创建一个类似于以下内容的布局。[参考图片]
因此背景上有一个全屏MapView(React Native Maps)Markers,需要单击它。
并且有一个Scrollview全屏高度超过,MapView其初始具有与其内容相关联的一些顶部利润。
但是如果我以这种方式安排视图的问题,则在初始状态下无法单击地图上的标记。
<View>
<MapView>
<Marker clickEventHere></Marker>
<Marker clickEventHere></Marker>
</MapView>
<ScrollView fullscreen>
<View marginTop></View>
</ScrollView>
<View>
Run Code Online (Sandbox Code Playgroud)
我不确定是否真的有可能解决这个问题。
尝试过的解决方案
yScrolled = event.nativeEvent.contentOffset.y;
yValue = this.state.yValue - yScrolled;
upwardScroll = yScrolled > 0;
if(upwardScroll && (yValue > 0)){
this.setState({
yValue: yValue
});
}
if(yScrolled === 0){
yScrolled = -10;
}
if(!upwardScroll && (yValue <= scrollViewMarginTop)){
yValue = this.state.yValue - yScrolled;
console.debug("UPDATE DOWNWARD");
this.setState({
yValue: yValue
});
}
Run Code Online (Sandbox Code Playgroud) react-native react-native-scrollview react-native-android react-native-maps
我正在使用react-native-fcm库为Android设备.当我的应用程序运行时,我正在收到正确的通知,但是当我的应用程序在后台或被杀时,我收到的JSON格式的通知数据类似于我在这里分享的图像.
componentDidMount() {
// iOS: show permission prompt for the first call. later just check permission in user settings
// Android: check permission in user settings
FCM.requestPermissions().then(()=>console.log('granted')).catch(()=>console.log('notification permission rejected'));
/*FCM.getFCMToken().then(token => {
console.log('Token',token)
// store fcm token in your server
});*/
this.notificationListener = FCM.on(FCMEvent.Notification, async(notif) => {
console.log('FCM notification', notif)
this.sendRemote(notif)
});
// initial notification contains the notification that launchs the app. If user launchs app by clicking banner, the banner notification info will be here rather than through FCM.on …Run Code Online (Sandbox Code Playgroud) 我正在使用,react-navigation并且嵌套TabNavigator在StackNavigator。我有三个选项卡中TabNavigator,并需要设置initialRouteName为TabNavigator动态基于某种逻辑。
我曾尝试把TabNavigator一个内部React组件具有动态选择的初始标签,并在用于StackNavigator与通过道具通过screenProps的TabNavigator。但是这样一来,我无法导航到的任何路线StackNavigator。
有什么办法可以initialRouteName动态制作。
注意:我没有为此应用程序使用redux。
reactjs react-native react-native-android react-native-ios react-navigation
我目前正在开发React Native应用程序,我们的一些用户可能会有轻微的视力问题.我们希望阻止在Android中设置"显示大小",因为这会使我们的应用无法使用.
我们使用简单的行解决了字体大小的问题:
Text.defaultProps.allowFontScaling=false;
Run Code Online (Sandbox Code Playgroud)
显示尺寸设置是否有类似的解决方案?
提前致谢
实际上我在我的应用程序中使用react-native-camera但它在这个版本中没有工作(react-native:0.56.0)并且它在这个版本中工作(react-native:0.55.4).
所以现在我想降低反应原生:0.56.0到反应原生:0.55.4.
我的系统配置:npm 6.1.0,react-native-cli:2.0.1,react-native:0.56.0,Mac OS,Xcode 9.3
谢谢
react-native react-native-camera react-native-android react-native-ios
我正在尝试连接到模拟器,但是响应即将出现此红色屏幕。我能做什么?

我试图使用nextFocusRight停止从React Native中的最后一个元素传播焦点,但是焦点仍传播到下一个视图。根据此拉取请求,它应该可以工作,但仍然面临相同的问题
我的代码:App.js
export default class App extends Component {
render() {
const data = [];
for (let i = 0; i < 10; i++)
data.push(i);
return (
<View>
<View>
{[1, 2].map(() => (
<ScrollView horizontal style={{ height: 210 }}>
{data.map(i => <Item id={i} buttonRef={this.buttonRef} />)}
</ScrollView>
))}
</View>
</View>
);
}
}
Run Code Online (Sandbox Code Playgroud)
Item.js
export default class Item extends Component {
myRef = null;
componentDidMount() {
const { id } = this.props;
if (id == 0) {
this.myRef.setNativeProps({ …Run Code Online (Sandbox Code Playgroud) 我已成功将Firebase Cloud Messaging与react-native-firebase一起用于在Android设备之间发送和接收仅数据消息。
当设备收到消息时,如果该应用程序在后台或已被杀死,我想将该应用程序置于前台。我收到的通知console.log()在两种情况下都会显示,但是我在弄清楚如何最好地“唤醒”应用程序/将其置于前台时遇到了麻烦:
firebase.messaging().onMessage((message) => {
// Process your message as required
console.log('You got a message!', message);
});
}
Run Code Online (Sandbox Code Playgroud)
在两种情况下,上述代码均按预期执行。
有没有我可以查看的React Native软件包来帮助实现我想做的事情,还是应该考虑写一些代码Java?
提前致谢。
我正在尝试实现这样的目标,但不确定是否可以将这样的代码直接添加到我的React Native应用程序中?
我发现了这个使用HeadlessJS的包react-native-invoke-app。
HeadlessJS要求您在以下代码中使用此代码index.js:
AppRegistry.registerHeadlessTask('SomeTaskName', () => require('SomeTaskName'));
但是Firebase Cloud Messaging已经需要您在同一位置提供这一行代码,我想它的作用与以上相同:
AppRegistry.registerHeadlessTask('RNFirebaseBackgroundMessage', () => backgroundMessaging);
在react-native-invoke-app文档之后,我然后将调用放置在firebase.messaging().onMessage((message))回调中调用我的应用程序,如下所示:
firebase.messaging().onMessage((message) => {
// Process your message as required
invokeApp();
console.log('You got message!', message);
});
}
Run Code Online (Sandbox Code Playgroud)
但是,这并没有使我的应用程序成为前台。 …
react-native react-native-android firebase-cloud-messaging react-native-firebase