状态键有一个问题,我只想在其他状态的值为X时才设置它。
this.state = {
//display items
setLanguage:'eng',
language:this.state.setLanguage=='eng'?Language.eng:Language.heb,
如果将语言设置为this.state,则将获取所有状态键和值,但是如果尝试将其设置为
language:this.state.setLanguage
我得到了错误: TypeError:未定义不是对象(正在评估'_this.state.setLanguage')
答案 0 :(得分:1)
您正在尝试使用尚未设置的状态。正确的代码应为:
this.state = {
setLanguage,
language: setLanguage === 'eng' ? Language.eng : Language.heb
}
还有另一种方法,那就是使用回调设置新状态。
this.setState({ setLanguage }, () => { this.setState({ language: this.state.setLanguage === 'eng' ? Language.eng : Language.heb }); });
请注意,this.state.setLanguage
在回调内可用,因为在第一次调用中已经设置了状态。