运行navigator.pop()后如何刷新React状态?

时间:2016-03-04 04:00:48

标签: javascript ios reactjs react-native

在使用React Native时,我有一些组件被推到彼此之上,其中一些组件会改变它们下面组件的状态,如下所示:

社交 - >群组 - >添加组

但是,当我运行navigator.pop()以返回上一个组件时(例如,在向用户的帐户添加组后),下面的组件(在这种情况下,'群组')不会刷新最新状态。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

原来我能够通过在'群组'上插入componentWillUpdate来解决此问题。组件,也就是说,每当组件更新时,它都会触发loadGroupsData函数:

componentWillUpdate() {
  this.loadGroupsData();
}

... loadGroupsData函数检查任何差异,如果存在任何差异,则加载:

loadGroupsData() {
api.getUserGroups(this.state.userId, (data) => {
  data.forEach((group, index) => {
    group.groupname = group.groupname;
  });
  if (this.state.dataSource._cachedRowCount === undefined || this.state.dataSource._cachedRowCount !== data.length) {
    this.setState({
      usersGroups: data.map(data => data.groupname),
      dataSource: this.state.dataSource.cloneWithRows(data),
      loaded: true,
    });
  }
});}