我正在尝试在Tab导航器之间传递一些参数。下面是我程序的结构。在bold中是路线
App(标签浏览器):{Main(堆栈)&Filter(屏幕)}
Main(堆栈导航器):{Home(屏幕)和MediaDetails(屏幕)}
我在与Filter关联的屏幕上有一个button,该功能具有onPress()功能。我正在传递一些参数(但是为了这个问题,我们只考虑参数to [>])。
关联的屏幕中,我正在这样读取状态内的参数:this.props.navigation.navigate('Home', { to: this.state.to, }
现在在与Home
中,我已将to的初始值设置为'2020',如下所示:state = { to: this.props.route.params.to }
内部App.js
。我按下按钮。假设我将to设置为1900。在this.props.navigation.navigate]执行之前,我console.log(this.state.to)值,并且确实将其更新为1900。但是,随着屏幕更改为Home,该值将恢复为2020(通过console.log观察)<Stack.Screen name="Home" component={HomeScreen} initialParams={{ to: '2020' }} />
初始值确实设置为2020
有人能指出这种怪异行为的原因吗?我已经尝试调试了好几个小时,没有运气。 React Navigation 5也是很新的,因此在网上找不到任何类似的东西。任何帮助将不胜感激。感谢您一路阅读。
编辑:
问题已解决,完整代码已删除!我正在尝试在Tab导航器之间传递一些参数。下面是我程序的结构。路线以粗体显示的是App(Tab Navigator):{Main(stack)&Filter(screen)} Main(Stack Navigator):{...
我通过shouldComponentUpdate()
中的更新状态