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

标签 javascript ios reactjs react-native

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

社交 -> 群组 -> 添加群组

但是,当我运行 navigator.pop() 返回到上一个组件时(例如,在将组添加到用户帐户之后),下面的组件(在本例中,'组') 不会刷新为最新状态。

我在这里做错了什么?

最佳答案

事实证明,我能够通过在“Groups”组件上插入一个 componentWillUpdate 来解决这个问题,也就是说,每当 Groups 组件更新时,它都会触发一个 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,
    });
  }
});} 

关于javascript - 运行 navigator.pop() 后如何刷新 React 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787751/

相关文章:

javascript - 实现用户登录系统的正确方法

javascript - Webstorm 无法识别 ...props 的 prop 类型

ios - 如何在同一个 ViewController 中禁用特定 UITextField 的键盘?

reactjs - 排版中的嵌套样式

javascript - 即使我将状态分散到变量中,是否也需要使用 PrevState?

匿名函数内部的 Javascript 作用域问题

Javascript:全局上下文和函数上下文声明

ios - 如何更改 Xcode Swift Playgrounds(.swiftpm) 项目中的字体?

ios - Apple Push Notifications 中的设备 token 是否会发生变化

javascript - Apollo-client _mutation 输入类型 - 提供的数据为空