gpt4 book ai didi

react-native - 在 react 导航中,routeName 和 key 之间有什么区别?

转载 作者:行者123 更新时间:2023-12-03 14:14:54 25 4
gpt4 key购买 nike

有点令人困惑的一件事是路由名称和键之间的区别以及为什么要使用一个和另一个。并且,如何处理重复的路由名称。

This documentation says您使用的 routeName导航到屏幕,然后是 key是“用于对路线进行排序的唯一标识符”。这意味着什么?

似乎路线名称不必是唯一的,如我的示例所示,因为外部选项卡和内部堆栈都具有相同的路线名称。当您使用导航功能时 - 您传递路线名称,对吗?如果是这样,它如何区分嵌套导航器中的重复路由名称以及何时使用该键?

        export TabsNavigator = TabNavigator({
Home: {
screen:StackNavigator({
Home: { screen: HomeScreen },
}),
},
Profile: {
screen: StackNavigator({
Profile: { ProfileScreen },
}),
},
});

The documentation有一个设置 key 的例子,但我无法理解它试图做什么的上下文,或者为什么你会在实际用例中这样做。
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)

最佳答案

您可以使用导航器中指定的屏幕名称(例如 StackNavigator )来打开/显示屏幕。每个屏幕都有一个唯一的标识符,这是关键。例如。如果您打开两个相同类型的屏幕,它们将具有相同的路线名称,但具有不同的键。

this.props.navigation.dispatch(NavigationActions.setParams(params: {val: 'val'}, key: 'home-1'));您可以使用键 'home-1' 更新屏幕的导航状态.例如。如果您在主屏幕顶部有 StackNavigator 和设置屏幕,您可以从设置屏幕更新主屏幕的导航状态 (this.props.navigation.state.params)。

关于react-native - 在 react 导航中,routeName 和 key 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42400966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com