Как получить данные в компоненте, который использует StackNavigator в реагировать родной?
Вот что я пытаюсь сделать для iOS-приложения, использующего реагирующее -
- Я использую StackNavigator
- На главном экране я показываю все элементы в списке, который
get/fetch
отAysncStorage
, Это сделано вcomponentDidMount()
, Это отлично работает. - Я иду на следующий экран (используя StackNavigator), чтобы добавить новый элемент в список в AsyncStorage. Товар добавлен.
- Когда я возвращаюсь на домашний экран с помощью кнопки назад, обновленный список не отображается. Так же
componentDidMount()
не называется.
Как решить эту проблему?
1 ответ
Решение
Redux - лучший вариант, но грязный обходной путь заключается в следующем:
Домашний экран
state = { items: [] }
addItemFromChild = (item) => {
this.setState((prevState) => ({ items: [...prevState.items, item] }))
}
goToAddItemScreen = () => {
this.props.navigation.dispatch(NavigationActions.navigate({ routeName: "AddItemScreen", params: { addItemFromChild: this.addItemFromChild } }))
}
AddItemScreen
addItem = (item) => {
this.props.navigation.state.params.addItemFromChild(item)
}