0

这里是我试图使用反应原生iOS应用做 -如何在反应原生中使用StackNavigator的组件中获取数据?

  1. 我使用StackNavigator
  2. 在主屏幕中,我查看列表是从AysncStorageget/fetch所有项目。这在componentDidMount()中完成。这工作正常。
  3. 我转到下一个屏幕(使用StackNavigator)将一个新项目添加到AsyncStorage中的列表中。项目被添加。
  4. 当我使用后退按钮回到主屏幕时,不会显示更新的列表。此外,componentDidMount()未被调用。

这个问题怎么解决?

+0

我已经解决了使用反应,终极版,但让我知道这个问题如果有任何其他解决方案可用。 – limitlessriver

回答

0

终极版是最好的选择,但一个肮脏的解决方法如下:

主屏幕

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) 
} 
相关问题