我面临的问题是网络回调尝试setMate()的未挂载组件,并收到有关此no-op的默认控制台警告。React:是否可以通过设置this.setState来清空函数来防止卸载后的状态更新?
我不可能跟踪为什么发生卸载,但我找到了一个解决方案,建议在componentWillUnmount()中将函数设置为无效。它没有工作,我测试将this.setState设置为无。见下文。
该错误消失,但我想问是否是一个有效的解决方案。下面的代码:
componentDidMount() {
this.fetchLogItems(10, 'recentChanges');
}
componentWillUnmount() {
this.setState =() => {};
}
fetchLogItems = (limit, stateRef) => {
let tmpObj = {};
base.fetch('_changelogs', {
context: this,
then(data) {
tmpObj[stateRef] = {...data}
tmpObj.loading = false;
this.setState({...tmpObj})
},
catch(err){console.error(err)}
});
};