在注销方法中,我试图将状态值设置为null。
this.setState({
activeUser: null
});
然后,在渲染中,我正在检查
if(!this.state.activeUser)
。但是,在第一次调用setState
时,它只是清空activeUser
对象。 activeUser: {}
。我可以重复通话:this.setState({
activeUser: null
});
然后删除
activeUser
属性,但这感觉像是黑客入侵。我不确定是否遇到语言问题或反应问题。我宁愿不更改渲染检查,但也许就是答案。// No, thank you.
if (!this.state.activeUser || typeof(this.state.activeUser) === 'undefined')
最佳答案
然后删除activeUser
属性
不,它不是删除属性,只是将其值设置为null
。要删除属性本身,应使用delete
:
delete this.state.activeUser;
但是,这很不好,因为它会更改状态。考虑使用像不变性助手之类的库。