0

这是我正在尝试使用 react-native 为 iOS 应用程序做的事情 -

  1. 我正在使用 StackNavigator
  2. 在主屏幕中,我在一个列表中显示所有项目,该列表get/fetch来自AysncStorage. 这是在componentDidMount(). 这工作正常。
  3. 我转到下一个屏幕(使用 StackNavigator)将新项目添加到 AsyncStorage 的列表中。项目已添加。
  4. 当我使用返回按钮返回主屏幕时,不会显示更新的列表。此外,componentDidMount()没有调用。

如何解决这个问题?

4

1 回答 1

0

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 } }))
}

添加项目屏幕

addItem = (item) => {
   this.props.navigation.state.params.addItemFromChild(item)
}
于 2017-10-17T23:37:22.537 回答