在反应导航中,路由名称和键之间有什么区别?



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

本文档说您使用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)

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

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

相关内容

  • 没有找到相关文章

最新更新