在 React Navigation 中如何更新状态 goBack

In React Nativigation how to update the state goBack

上面的问题已经说明了一切。我有 HomeScreen 的 StackNavigation。 HomesScreen 有一个组件 Location,和一个状态 location ,位置存储在 AsyncStorage.

使用 goBack() 函数,我想导航到主屏幕(导航部分已完成)和 更新 状态位置。我想更新位置状态以在 HomeScreen 中呈现位置。

主屏幕渲染:

<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() 上传递值。