虽然有工作作出反应母语,我有是在对方,其中一些改变它们下面的组件的状态,像这样的顶推的几个组成部分:如何在运行navigator.pop()后刷新React状态?
社会 - >组 - >添加
集团然而,当我运行navigator.pop()
,回到前一个组件,在组件下(例如,添加一组用户的账号后)(在这种情况下,“组”),将不与最新的状态更新。
我在这里做错了什么?
虽然有工作作出反应母语,我有是在对方,其中一些改变它们下面的组件的状态,像这样的顶推的几个组成部分:如何在运行navigator.pop()后刷新React状态?
社会 - >组 - >添加
集团然而,当我运行navigator.pop()
,回到前一个组件,在组件下(例如,添加一组用户的账号后)(在这种情况下,“组”),将不与最新的状态更新。
我在这里做错了什么?
原来我能够通过“网上论坛”组件上插入一个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,
});
}
});}
我不认为你可以在componentWillUpdate功能SETSTATE。反应原生文件说。 注: 你不能在这个方法中使用this.setState()。如果您需要更新状态以响应支柱更改,请改用componentWillReceiveProps。 https://facebook.github.io/react/docs/component-specs.html –
获得无尽的电话,如果我把上的setState componentWillUpdate,任何想法如何避免这种情况? – jatazoulja
我不认为这与导航器有任何关系。您需要改变顶部组件的状态,并触发重新渲染。 –