带反应导航的条件抽屉

时间:2019-10-15 08:30:12

标签: react-native react-navigation

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

我该怎么办?

0 个答案:

没有答案