React Native从另一个状态键访问this.state.key

时间:2019-04-08 15:45:52

标签: reactjs react-native

状态键有一个问题,我只想在其他状态的值为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')

1 个答案:

答案 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在回调内可用,因为在第一次调用中已经设置了状态。