如何在反应原生中使用StackNavigator的组件中获取数据?
问题描述:
这里是我试图使用反应原生iOS应用做 -如何在反应原生中使用StackNavigator的组件中获取数据?
- 我使用StackNavigator
- 在主屏幕中,我查看列表是从
AysncStorage
get/fetch
所有项目。这在componentDidMount()
中完成。这工作正常。 - 我转到下一个屏幕(使用StackNavigator)将一个新项目添加到AsyncStorage中的列表中。项目被添加。
- 当我使用后退按钮回到主屏幕时,不会显示更新的列表。此外,
componentDidMount()
未被调用。
这个问题怎么解决?
答
终极版是最好的选择,但一个肮脏的解决方法如下:
主屏幕
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)
}
我已经解决了使用反应,终极版,但让我知道这个问题如果有任何其他解决方案可用。 – limitlessriver