在注销方法中,我试图将状态值设置为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')
答案 0 :(得分:2)
然后删除
activeUser
属性
不,它不是删除属性,只是将其值设置为null
。要删除属性本身,您应该使用delete
:
delete this.state.activeUser;
然而,这很糟糕,因为它改变了状态。考虑使用像immutability helpers这样的库。