在React Navigation 5中传递参数

问题描述 投票:1回答:1

我正在尝试在Tab导航器之间传递一些参数。下面是我程序的结构。在bold中是路线

App(标签浏览器):{Main(堆栈)&Filter(屏幕)}

Main(堆栈导航器):{Home(屏幕)和MediaDetails(屏幕)}

我在与Filter关联的屏幕上有一个button,该功能具有onPress()功能。我正在传递一些参数(但是为了这个问题,我们只考虑参数to [>])。

this.props.navigation.navigate('Home', {
    to: this.state.to,
}

现在在与Home

关联的屏幕中,我正在这样读取状态内的参数:
state = {
    to: this.props.route.params.to
}

内部App.js

中,我已将to的初始值设置为'2020',如下所示:
<Stack.Screen 
    name="Home" 
    component={HomeScreen}                 
    initialParams={{
       to: '2020'
    }}
/>

初始值确实设置为2020

。我按下按钮。假设我将to设置为1900。在this.props.navigation.navigate]执行之前,我console.log(this.state.to)值,并且确实将其更新为1900。但是,随着屏幕更改为Home,该值将恢复为2020(通过console.log观察)

有人能指出这种怪异行为的原因吗?我已经尝试调试了好几个小时,没有运气。 React Navigation 5也是很新的,因此在网上找不到任何类似的东西。任何帮助将不胜感激。感谢您一路阅读。

编辑:

问题已解决,完整代码已删除!

我正在尝试在Tab导航器之间传递一些参数。下面是我程序的结构。路线以粗体显示的是App(Tab Navigator):{Main(stack)&Filter(screen)} Main(Stack Navigator):{...

react-native react-navigation react-navigation-stack react-navigation-bottom-tab react-navigation-v5
1个回答
0
投票

我通过shouldComponentUpdate()

中的更新状态
© www.soinside.com 2019 - 2024. All rights reserved.