当我在Android设备上安装我的调试版本时出现此问题,如果我安装发布版本它只是崩溃
我见过有同样问题的人,但他们的解决方案对我没有用,所以这就是为什么我要伸出援手
这是我现在的app.js
function logout(){
AsyncStorage.clear();
}
const RootNavigator = StackNavigator({
Login: {
screen: Login,
navigationOptions: ({ navigation}) => ({
header: null,
}),
},
Content: {
screen: Content,
navigationOptions: ({ navigation }) => ({
header: null,
}),
},
});
AppRegistry.registerComponent('lemockup', () => App);
export default RootNavigator;
我知道这是错的,应该是这样的
export default class App extends Component<{}> {
logout(){
AsyncStorage.clear();
}
const RootNavigator = StackNavigator({
Login: {
screen: Login,
navigationOptions: ({ navigation}) => ({
header: null,
}),
},
Content: {
screen: Content,
navigationOptions: ({ navigation }) => ({
header: null,
}),
},
});
}
export default RootNavigator;
然后在我的index.js中有这个
import { AppRegistry } from 'react-native';
import App from './App';
AppRegistry.registerComponent('lemockup', () => App);
但是,如果我尝试gradlew assembleRelease与它像这样我在const RootNavigator上得到错误正好在单词Rootnavigator行,我不知道为什么。任何知道自己做错了什么的人现在都坐了这么多个小时。
答案 0 :(得分:1)
这里有些问题:
RootNavigator
定义可以位于App
之外。应用程序没有render
功能 - 这可能是您想要使用导航器的地方。
const RootNavigator = StackNavigator({
Login: {
screen: Login,
navigationOptions: ({ navigation}) => ({
header: null,
}),
},
Content: {
screen: Content,
navigationOptions: ({ navigation }) => ({
header: null,
}),
},
});
export default class App extends Component<{}> {
logout(){
AsyncStorage.clear();
}
render() {
return(<RootNavigator/>);
}
}
但是,为了进一步简化操作,您可以完全放弃App
组件,直接导出RootNavigator
。你必须找到一个更好的地方放置logout()
。