【发布时间】:2018-03-26 15:28:15
【问题描述】:
我有一个错误,我不知道从哪里开始。尝试更新 react-native 版本 - 但它没有成功..
环境
react-native-cli: 2.0.1
react-native: 0.54.2
生产构建
该应用程序已构建并发布到 google play 商店。所以它是编译的生产版本。认为这可能是模块的问题.. 但不太确定..
这是我在主要组件中的导入
import React, { Component } from 'react'
import { View, Modal, Text, TextInput, StyleSheet } from 'react-native'
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'
全栈
java.lang.RuntimeException:
at com.facebook.react.bridge.ReactContext.handleException (ReactContext.java:313)
at com.facebook.react.bridge.GuardedRunnable.run (GuardedRunnable.java:23)
at android.os.Handler.handleCallback (Handler.java:739)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:158)
at android.app.ActivityThread.main (ActivityThread.java:7225)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)
Caused by: android.view.WindowManager$BadTokenException:
at android.view.ViewRootImpl.setView (ViewRootImpl.java:849)
at android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:337)
at android.view.WindowManagerImpl.addView (WindowManagerImpl.java:91)
at android.app.Dialog.show (Dialog.java:350)
at com.facebook.react.views.modal.ReactModalHostView.showOrUpdate (ReactModalHostView.java:256)
at com.facebook.react.views.modal.ReactModalHostManager.onAfterUpdateTransaction (ReactModalHostManager.java:107)
at com.facebook.react.views.modal.ReactModalHostManager.onAfterUpdateTransaction (ReactModalHostManager.java:28)
at com.facebook.react.uimanager.ViewManager.updateProperties (ViewManager.java:35)
at com.facebook.react.uimanager.NativeViewHierarchyManager.createView (NativeViewHierarchyManager.java:233)
at com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute (UIViewOperationQueue.java:153)
at com.facebook.react.uimanager.UIViewOperationQueue$1.run (UIViewOperationQueue.java:816)
at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches (UIViewOperationQueue.java:929)
at com.facebook.react.uimanager.UIViewOperationQueue.access$2100 (UIViewOperationQueue.java:47)
at com.facebook.react.uimanager.UIViewOperationQueue$2.runGuarded (UIViewOperationQueue.java:887)
at com.facebook.react.bridge.GuardedRunnable.run (GuardedRunnable.java:21)
更新
我在 3 个不同的地方使用模态。
const Credits = ({ display, toggle }) => (
<View>
<TouchableOpacity
style={[styles.button, styles.info]}
onPress={() => toggle()}
>
<Icon name="question" size={30} color="#000" />
</TouchableOpacity>
{display && (
<Modal
animationType="slide"
transparent={true}
onRequestClose={() => toggle()}
>
<View style={styles.card}>
<ScrollView>
{ ... code ... }
</ScrollView>
<TouchableOpacity
style={[styles.button, styles.close]}
onPress={() => toggle()}
>
<Icon name="close" size={30} color="#000" />
</TouchableOpacity>
</View>
</Modal>
)}
</View>
)
不知道是不是因为我使用{ display && <Modal .../> }逻辑而不是使用道具visible={display}???
任何帮助将不胜感激!
【问题讨论】:
-
this answer 对您有帮助吗?
-
这可能是问题所在,但我将如何使用 react native 修复它 - javascript 而不是纯 JAVA?
-
@Norfeldt,请提供如何重现它的步骤。或更好地提供代码示例
-
你能显示使用模式的这个文件吗?根据错误,您似乎在活动被破坏后使用模式
-
@jayshah 我添加了一个代码示例 - 希望对您有所帮助..
标签: java android reactjs react-native