反应导航路线状态以具有键和索引
react navigation route states to have key and index
我无法使用 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:...}
当导航到 Feed 选项卡导航器时。
在你的第二个代码片段中,它应该是这样的:
const initialState=Navigator.router.getStateForAction(
NavigationActions.init()
);
function navigate(screenName,state){
return Navigator.router.getStateForAction(NavigationActions.navigate({routeName:screenName}),state);
}
getStateForAction
收到第二个 "state" 参数,您将其传递给 NavigationActions.navigate
.
NavigationActions.init()
期望像 {routeName:'screen1'} 这样的任何对象作为初始化状态的参数。所以它应该是这样的:NavigationActions.init({routeName:'screen1'})
.
我无法使用 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:...}
当导航到 Feed 选项卡导航器时。
在你的第二个代码片段中,它应该是这样的:
const initialState=Navigator.router.getStateForAction(
NavigationActions.init()
);
function navigate(screenName,state){
return Navigator.router.getStateForAction(NavigationActions.navigate({routeName:screenName}),state);
}
getStateForAction
收到第二个 "state" 参数,您将其传递给NavigationActions.navigate
.NavigationActions.init()
期望像 {routeName:'screen1'} 这样的任何对象作为初始化状态的参数。所以它应该是这样的:NavigationActions.init({routeName:'screen1'})
.