警告信息显示:
"警告:只能更新已安装或安装的组件。这通常意味着您在已卸载的组件上调用了setState,replaceState或forceUpdate。这是一个无操作。"
代码导致了它:
async componentDidMount() {
const token = await AsyncStorage.getItem('google_token');
if (token) {
this.props.navigation.navigate('feed');
this.setState({ token });
} else {
this.setState({ token: false });
}
}
在谷歌之后,如果我担心这个警告,我真的很困惑。如何在不禁用此Github issue建议的规则的情况下收到警告消息?
答案 0 :(得分:7)
我认为问题在于您正在导航到“Feed'然后更新此组件的状态。最好先更新状态,然后在完成后导航:
async componentDidMount() {
const token = await AsyncStorage.getItem('google_token');
if (token) {
this.setState({ token }, () => this.props.navigation.navigate('feed'));
} else {
this.setState({ token: false });
}
}