Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React Native StackNavigator:goBack()操作后刷新数据_Javascript_Reactjs_React Native_React Navigation - Fatal编程技术网

Javascript React Native StackNavigator:goBack()操作后刷新数据

Javascript React Native StackNavigator:goBack()操作后刷新数据,javascript,reactjs,react-native,react-navigation,Javascript,Reactjs,React Native,React Navigation,保存新listItem的数据后,我尝试重新呈现StackNavigator的第一个屏幕。成功保存后,我调用this.props.navigation.dispatch(NavigationActions.back()) 我想用一个this.\u updateData函数重新呈现页面。我尝试了这里提到的一个解决方案:beausmith,其中this.\u updateData函数被传递到this.props.navigation.navigate,如下所示: this.props.navigati

保存新listItem的数据后,我尝试重新呈现StackNavigator的第一个屏幕。成功保存后,我调用
this.props.navigation.dispatch(NavigationActions.back())
我想用一个
this.\u updateData
函数重新呈现页面。我尝试了这里提到的一个解决方案:beausmith,其中
this.\u updateData
函数被传递到this.props.navigation.navigate,如下所示:

this.props.navigation.navigate('ScreenB', {
  onNavigateBack: this._updateData
})
然后在ScreenB上,您将执行以下操作:

this.props.navigation.state.params.onNavigateBack()


使用StackNavigator,您不需要调用this.props.navigation.navigate,因为它已经内置在标题中。我尝试在screenA的ComponentDidMount钩子中添加
this.\u updateData
this.props.navigation.state.params
,然后像我在ScreenB中所做的那样调用它,但似乎没有任何作用(没有错误消息,但没有刷新)。你知道我哪里出错了吗?

你是想专门使用.back()吗?为什么不直接导航到屏幕这个.props.navigation.navigate(“主屏幕”)呢?然后,如果您更改了状态(从用户添加新列表项开始),组件将已经重新提交。嘿,这很有效!我没有意识到goBack()的行为有所不同,但这是有道理的。同样的问题能给出解决方案吗?
this.props.navigation.dispatch(NavigationActions.back())