首页 > 解决方案 > 带有反应导航的条件抽屉

问题描述

我在带有异步存储的 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 放入渲染中,这不会在任何时候停止渲染。

我该怎么做?

标签: react-nativereact-navigation

解决方案


推荐阅读