2017-05-24 78 views
3

警告消息说:异步SETSTATE)警告在阵营本土

“警告:只能更新一安装或安装组件这通常意味着你叫的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建议的规则的情况下获取警告消息?

回答

6

我认为问题在于您正在导航到'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 }); 
    } 
}