我有一个复选框:
<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,反之亦然。它没有得到更新。
答案 0 :(得分:0)
您应该始终使用setState({preference:&#34; hello})更改状态,而不是直接更改this.state。您的第二个代码段中的三元也是错误的顺序,您应该使用冒号而不是= inside对象。总的来说,我认为试试这个:
{
this.setState({
preference: this.props.data.profile && this.props.data.profile.preference == 0 ? false : true
})
}