有点令人困惑的一件事是路由名称和密钥之间的区别以及为什么要使用一个与另一个。以及如何处理重复的路线名称。
该文档说您用于routeName
导航到屏幕,这key
是“用于对路线进行排序的唯一标识符”。这意味着什么?
似乎路由名称不必是唯一的,如我的示例所示,因为外部选项卡和内部堆栈都具有相同的路由名称。当您使用导航功能时 - 您传递了路线名称,对吗?如果是这样,它如何区分嵌套导航器中的重复路由名称以及何时使用该键?
export TabsNavigator = TabNavigator({
Home: {
screen:StackNavigator({
Home: { screen: HomeScreen },
}),
},
Profile: {
screen: StackNavigator({
Profile: { ProfileScreen },
}),
},
});
该文档有一个设置密钥的示例,但我无法理解它试图做什么的上下文,或者你为什么要在实际用例中这样做。
import { NavigationActions } from 'react-navigation'
const setParamsAction = NavigationActions.setParams({
params: {}, // these are the new params that will be merged into the existing route params
// The key of the route that should get the new params
key: 'screen-123',
})
this.props.navigation.dispatch(setParamsAction)