【问题标题】:react navigation route states to have key and index反应导航路线状态以具有键和索引
【发布时间】:2017-11-11 12:07:38
【问题描述】:

我无法使用NavigationActions.init() 或文档中提到的那个正确生成状态。 这就是我的导航器的定义方式:

const HomeNav = TabNavigator({
feed:{screen:Feed},
restaurantScreen:{screen:Restaurant},
},{
tabBarComponent:NavigationComponent,
tabBarPosition:'bottom',
tabBarOptions:{
    bottomNavigationOptions:{
        labelColor:'white',
        rippleColor:'white',
        tabs:{
            feed:{
                barBackgroundColor:'#37474F',
            },
            restaurantScreen:{
                barBackgroundColor:'#00796B',
            }
        }
    }
}
});
export const Navigator=StackNavigator(
{
    HomeScreen:{screen:Home},
    VerifyScreen:{screen:Verify},
    newUserScreen1:{screen:newUser1},
    newUserScreen2:{screen:newUser2},
    loginScreen:{screen:login},
    feedScreen:{screen:HomeNav},
},
{
    headerMode:'none',
},
);

这就是我设置初始状态的方式:

const initialState=Navigator.router.getStateForAction(
NavigationActions.init()
);

function navigate(screenName,state){
return Navigator.router.getStateForAction(NavigationActions.navigate({routeName:screenName},state));
}

出现以下错误: Expect nav state to have routes and index,{routeName:'feedScreen',key:...} 导航到提要选项卡导航器时。

【问题讨论】:

    标签: react-native redux react-navigation


    【解决方案1】:

    在你的第二个代码 sn-p 中应该是这样的:

    const initialState=Navigator.router.getStateForAction(
    NavigationActions.init()
    );
    
    function navigate(screenName,state){
    return Navigator.router.getStateForAction(NavigationActions.navigate({routeName:screenName}),state); 
    }
    
    • getStateForAction 接收第二个“状态”参数,而您将其传递给 NavigationActions.navigate

    • NavigationActions.init() 期望任何像 {routeName:'screen1'} 这样的对象作为参数来初始化状态。所以应该是这样的:NavigationActions.init({routeName:'screen1'})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      相关资源
      最近更新 更多