Я работал над этим и добился с помощью react-navigation
.
По сути, ваш компонент A отправит компоненту B состояние навигации компонента A. Итак, для Bс точки зрения, это будет prevState перед укладкой компонента B.
Поэтому, когда компонент B перемещается «назад» к компоненту A, используя предыдущее состояние навигации, это было так, как будто ваше состояние навигации никогда не менялось, и теперь вы можете использовать второйпараметр navigate
для отправки параметров обратно компоненту A.
Этот простой пример иллюстрирует эту практику, и я думаю, что она полностью допустима и не используется AsyncStorage
.
// In Component A use a custom prevState when goes to Component B
const { navigation } = this.props;
navigation.navigate('ComponentB', { prevState: navigation.state });
// In Component B use this custom goBack to "pop" to last screen
function goBack(data) {
const { navigation } = this.props;
const { routeName, key } = navigation.getParam('prevState');
navigation.navigate({ routeName, key, params: data });
}
// And finally in Component A again you could get data like this
function getDataFromComponentB() {
const { navigation } = this.props;
// It is null if no parameters are specified!
return navigation.state.params;
}