在 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() 上传递值。
上面的问题已经说明了一切。我有 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() 上传递值。