ios – React Native – 在异步操作后导航

我正在使用React Native和Redux开发移动应用程序,我正面临着软件设计问题.
我想调用REST API(异步操作)进行登录,如果该操作成功,则导航到主视图.
我正在使用redux和thunk所以我已经实现了异步操作,所以我的主要疑问是:我应该把逻辑导航到主视图?

我可以直接从动作访问导航器对象并在那里执行导航吗?
我应该在登录组件中执行此操作吗? (正如我已经这样做 – 检查下面的代码).

componentwillReceiveProps(nextProps){
    if(nextProps.errorLoginMsg){
        Alert.alert("Login Failed",nextProps.errorLoginMsg);
    }
    else if(!nextProps.user.isNull()){
      this.props.navigator.replace({name: 'main'});
    }
  }

我对组件中的逻辑没有信心.似乎不是一个好习惯.有没有其他方法可以做到这一点?

谢谢

解决方法

这是使用当前Navigator API进行本地反应时最难的问题之一.我建议有一个路由存储,它保存当前路由,并且包含连接到该存储的导航器的组件,并在componentwillReceiveProps上触发导航.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...