this.props.navigation.setParams() 不会更新之前传递的导航参数



我在我的 react-native 项目中使用了TabNavigator,并通过this.props.navigation.setParams()和分别this.props.navigation.getParam()在屏幕之间传递一些数据。问题是这种方法对我有用,只有当我第一次发送数据时,第二次当我尝试发送数据时,离开屏幕时数据不会更新navigation.state.params

以下是负责接收和发送数据的代码片段

import {NavigationEvents} from 'react-navigation';
...
receiveData = () => {
if (this.props.navigation.state.params.data !== null) {
const data = this.props.navigation.getParam('data');
this.setState({data});
}
}
sendData = () => {
const {data} = this.state;
this.props.navigation.setParams({data});
}
render(){
...
<NavigationEvents
onWillFocus = {this.receiveData}
on WillBlur = {this.sendData}
/>
...
}

检查选项卡导航器是否正确模糊/聚焦选项卡。

将方法sendData()放在组件render()函数中,这是允许您更新参数的唯一方法。

相关内容

  • 没有找到相关文章

最新更新