在iOs模拟器中运行我发现了错误
ExceptionsManager.js:73警告:只能更新已安装或安装的组件。这通常意味着您在已卸载的组件上调用了setState,replaceState或forceUpdate。这是一个无操作。
这样做。
constructor(props) {
super(props);
this.state = {
isOnline: false
}
}
componentDidMount(){
NetInfo.isConnected.addEventListener('connectionChange', this.checkConnection);
}
componentWillUpdate(){
NetInfo.removeEventListener('connectionChange', this.checkConnection);
}
checkConnection = () => {
NetInfo.isConnected.fetch().then((data) => {
console.log('refresh:', data);
this.setState({
isOnline: data <------ this is the line that affect me
})
});
}
任何想法为什么?
答案 0 :(得分:0)
如ZeroBased_IX所述:
执行此操作:
componentWillUnmount(){
NetInfo.isConnected.removeEventListener('connectionChange');
}
在该行中触发,因为这是您将更新后的值用于其余代码库的行。因此在捆绑包编译时将其破坏。
希望这很有帮助!