我有一个欢迎屏幕,我想只向用户展示一次。它的工作原理我使用AsyncStorage来保存令牌。它改变了ShowWelcomeSlides的状态,所以我可以创造一个条件。但是我有一条错误信息。如果不是在componentWillMount中,我真的不知道我可以在哪里更新状态。有什么想法吗?
警告:只能更新已安装或安装的组件。这通常意味着您在已卸载的组件上调用了setState,replaceState或forceUpdate。这是一个无操作。
componentWillMount() {
this._renderWelcomeSlidesWithAsyncStorage().done();
}
_renderWelcomeSlidesWithAsyncStorage = async () => {
let value = await AsyncStorage.getItem('AlreadyVisited');
if (value==='true'){
this.setState({ShowWelcomeSlides: 'false'});
console.log('token is present')
}else{
this.setState({ShowWelcomeSlides: 'true'});
console.log('token is not present');
this._setValue();
}
};
onSlidesComplete = () => {
this.props.navigation.navigate('Home');
}
render(){
if (this.state.ShowWelcomeSlides==='true'){
return(
<Slides data={SLIDE_DATA} onComplete={this.onSlidesComplete} />
);
}return(
<SkipWelcome />
);
答案 0 :(得分:0)
我认为警告是使用componentWillMount。您应该在componentDidMount中调用_renderWelcomeSlidesWithAsyncStorage以确定您的应用已挂载。