上面的问题已经说明了一切。我有一个 HomeScreen 的 StackNavigation 。 HomesScreen 有一个组件 Location 和一个状态 location ,其中位置存储到 AsyncStorage。
使用goBack()函数,我想导航到主屏幕(导航部分已完成)并更新状态位置。我想更新位置状态以在主屏幕中呈现位置。
主屏幕渲染:
<View>
<Text style=>{(this.state.location) ? (this.state.location) : ('Select Current Location')}</Text>
</View>
位置组件
await AsyncStorage.getItem('location').then((location) => {
this.setState({location: location, persistedLocation: location})
});
await AsyncStorage.getItem('region').then((region) => {
this.setState({region: region, persistedRegion: region})
});
流程:
如何将“goBack()”上的状态更新到主屏幕?
有什么方法可以更好地做到这一点吗?
最佳答案
经过大量搜索,我终于在这里找到了它:https://github.com/react-community/react-navigation/issues/288 。
在主屏幕中:
this.props.navigate("Location", { onSelect: this.onSelect });
onSelect = data => {
this.setState(data);
};
位置屏幕:
const { navigation } = this.props;
navigation.goBack();
navigation.state.params.onSelect({ selected: true });
所有问题的正确解决方案,用于更改前一屏幕的状态,在 goBack() 上传递值。
关于android - 在 React Navigation 中如何更新状态 goBack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45182072/