正在检查更新复选框值 - 对原生

时间:2018-01-09 18:57:44

标签: reactjs react-native

我有一个复选框:

 <CheckBox 
   checked={this.state.preference} 
   onPress={() => this.setState({
     preference: !this.state.preference
   })}
 />

最初,我希望根据我提取的数据检查复选框。 我有一个首选项字段,其值为0,所以我把:

{
  this.props.data.profile && this.props.data.profile.preference== 0 ? 
    this.state.preference = false : this.state.preference= true
}

但是现在onPress,this.state.preferences不会改变,因为它仍然获得profile.preference值。

我该如何解决这个问题? 最初是根据this.props.data.profile.preference检查复选框,然后onPress我可以改变它吗?

 constructor(props) {
  super(props);
  this.state = {
      showForm: 0,
      active: true,  
      emailPreference: true,

  };

所以在复选框之前我有:  如果this.props.data.profile&amp;&amp; this.props.data.profile.preference == 0,然后将emailPreference设为false,否则emailPreference为true。

然后根据emailPreference添加checked。 但是一旦获得该值,即使onPress我将状态从true更改为false,反之亦然。它没有得到更新。

1 个答案:

答案 0 :(得分:0)

您应该始终使用setState({preference:&#34; hello})更改状态,而不是直接更改this.state。您的第二个代码段中的三元也是错误的顺序,您应该使用冒号而不是= inside对象。总的来说,我认为试试这个:

{
  this.setState({
      preference: this.props.data.profile && this.props.data.profile.preference == 0 ? false : true
  })
}