React Native使用不同的道具导航到同一页面

时间:2019-06-23 17:00:41

标签: react-native react-native-android react-navigation react-navigation-drawer

我正在开发使用侧面抽屉的RN应用。(RN版本:0.59.8)

const DrawerNavigator = createDrawerNavigator(
    {
        Home: {
            screen: HomeScreen
        },
        Poems: {
            screen: PoemsScreen
        },
        Contest: {
            screen: ContestScreen
        },
        AboutMe: {
            screen: AboutMeScreen
        }
    },
    DrawerConfig
);

export default createAppContainer(DrawerNavigator);

正在使用的react-navigation版本是3.11.0。 在菜单中,多个子项指向同一页面,即ViewPager,但具有不同的参数(页面索引)。 问题在于以下任何一项都不起作用:

  1. 试图使用推送而不是导航(返回_this2.props.navigation.push is not a function
  2. 尝试重置各自的堆栈。
const resetAction = StackActions.reset({
   index: 0,
   key: 'Poems',
   actions: [NavigationActions.navigate({ routeName: 'Poems' })]
})
this.props.navigation.dispatch(resetAction)

(也尝试过key: null

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

尝试阅读https://reactnavigation.org/docs/en/navigating.html#navigate-to-a-route-multiple-times

您需要使用navigation.push()来运行具有不同参数的组件副本。

答案 1 :(得分:0)

将数据添加到导航功能

this.props.navigation.navigate('routeName', { data })

例如:this.props.navigation.navigate('BookDetails', { book: this.props.book })