我在带有异步存储的app.js中有条件导航。
在app.js中,我有一个使用AsyncStorage修改状态的构造函数,并且在state函数中显示了另一个抽屉:
constructor(props) {
super(props);
this.getData().then((vist) => {
if(vist !== null) {
this.setState({vist: 1});
} else {
this.setState({vist: 0});
}
});
}
getData = async () => {
try {
const value = await AsyncStorage.getItem('vist');
return value;
} catch(e) {
}
}
和渲染:
render(){
return (
{ this.state.vist == 0 ?
<AppContainer
ref={navigatorRef => {
NavigationService.setTopLevelNavigator(navigatorRef);
}}
/>
:
<AppContainerFinal
ref={navigatorRef => {
NavigationService.setTopLevelNavigator(navigatorRef);
}}
/>
}
);
}
问题是我在其他页面上更改了异步存储,因此无法刷新app.js来更改app.js中的状态
如果我将setstate放在render中,这不会随时停止渲染。
我该怎么办?