使用Redux进行反应导航 - StackNavigator在后台加载其他屏幕内容

时间:2017-09-02 12:12:53

标签: javascript reactjs react-native redux react-navigation

使用React Native,React Navigation和Redux在内容加载内容时显示启动画面的最佳方法是什么?

我目前有一个Stack Navigator包含:

  • 初始启动画面( SplashScreen
  • 带内容的嵌套标签导航器( AppNavigator )。
export const RootNavigator = StackNavigator({
    Splash: { screen: SplashScreen },
    App: { screen: AppNavigator },
}, {
    navigationOptions: { header: null},
});

嵌套的Tab Navigator( AppNavigator )有多个屏幕,可以从React Native WebView 组件加载内容。

我希望在 WebView 组件加载来自各种uri的内容时显示启动画面。计划是使用 WebView 组件的 onLoadStart onLoad 方法向Redux发送操作,以触发导航重置 AppNavigator的行动

启动画面和主应用程序之间的导航工作正常,但是当启动画面启动且路径未显示在导航状态时,主应用程序中没有任何内容加载。

加载内容的最佳方法是什么?

Redux Reducer for Navigation:

const initialNavState = RootNavigator.router.getStateForAction(
   NavigationActions.init()
);

function NavigationReducer(state = initialNavState, action) {
    let nextState = RootNavigator.router.getStateForAction(action, state);
    return nextState || state;
}
运行时

initialNavState

{
    index:0
    routes:
        Array(1)
            0:{routeName: "Splash", key: "Init-id-1504353614126-0"}
}

0 个答案:

没有答案