react-native - 带有反应导航的条件抽屉
问题描述
我在带有异步存储的 app.js 中有条件导航。
在 app.js 中,我有一个带有 AsyncStorage 修改状态的构造函数,并且在状态函数中显示了一个不同的抽屉:
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 放入渲染中,这不会在任何时候停止渲染。
我该怎么做?
解决方案
推荐阅读
- performance - 为什么在 redis 基准测试中比 i7-6700 慢 2700 倍?
- sql - 如何将字符串值插入 SQLite3 中的表中?
- html - 输入字段不接受字符
- javascript - 使用 forEach 处理函数
- javascript - 通过循环添加事件侦听器与添加到文档并检查事件目标是否匹配元素
- javascript - 仅用第二个字符替换两个字符的任意组合
- python - 代码可以在 Anaconda 上运行,但不能通过 cmd 在 Python 上运行
- django - 为什么删除 django 服务器缓存中的会话记录不会让我注销?
- r - 描述 R 中的入射密度
- python - 如何使用 skimage.segmentation.felzenszwalb 围绕轮廓获得框?