Javascript 如何确定在您的状态下选中了哪个复选框?

Javascript 如何确定在您的状态下选中了哪个复选框?,javascript,react-native,checkbox,state,react-native-elements,Javascript,React Native,Checkbox,State,React Native Elements,我正在使用复选框,我有两个复选框,我只想选择其中一个,我成功地做到了这一点,但我正在尝试控制台。只记录复选框,但它不起作用,因为它们有两个不同的状态,所以我如何确定在我的应用程序中使用该状态选中了哪个复选框?代码如下: 初始状态: state: { single: false, married: false } <CheckBox title="Single" checked={this.state.single} onP

我正在使用复选框,我有两个复选框,我只想选择其中一个,我成功地做到了这一点,但我正在尝试控制台。只记录复选框,但它不起作用,因为它们有两个不同的状态,所以我如何确定在我的应用程序中使用该状态选中了哪个复选框?代码如下:

初始状态:

state: {
  single: false,
  married: false
}
 <CheckBox title="Single"
              checked={this.state.single}
              onPress={() => this.setState({ single: !this.state.single, 
              married: false})}/>

 <CheckBox title="Married"
              checked={this.state.married}
              onPress={() => this.setState({ married: !this.state.married, 
              single: false})}/>
复选框:

state: {
  single: false,
  married: false
}
 <CheckBox title="Single"
              checked={this.state.single}
              onPress={() => this.setState({ single: !this.state.single, 
              married: false})}/>

 <CheckBox title="Married"
              checked={this.state.married}
              onPress={() => this.setState({ married: !this.state.married, 
              single: false})}/>
this.setState({single:!this.state.single,
已婚:假}}/>
this.setState({marred:!this.state.marred,
单个:false}}/>

我有一个api,我想在其中发布数据,它有
maritalStatus
属性,我想根据复选框将已婚或单身作为字符串值发送

看起来它们是异或操作。您需要通过查看单击按钮的过去状态来设置每个人的当前状态

单一:

{single: !this.state.single, married: this.state.single}
结婚的

{single:this.state.married, married: !this.state.married}

我认为你不需要为此管理两个州。在这种情况下,一个人可以是已婚或单身。 所以你需要这样做

如果您想在加载时同时选中这两个复选框,那么

state: {
  single: void 0,
}


<CheckBox title="Single"
              checked={this.state.single}
              onPress={() => this.setState({ single: !this.state.single})}/>

 <CheckBox title="Married"
              checked={this.state.single !== undefined && !this.state.single}
              onPress={() => this.setState({ married: !this.state.single})}/>
状态:{
单个:无效0,
}
this.setState({single:!this.state.single})}/>
this.setState({marred:!this.state.single})}/>
或者如果有人检查过的话

state: {
  single: true,
}


<CheckBox title="Single"
              checked={this.state.single}
              onPress={() => this.setState({ single: !this.state.single})}/>

 <CheckBox title="Married"
              checked={!this.state.single}
              onPress={() => this.setState({ married: !this.state.single})}/>
状态:{
单身:没错,
}
this.setState({single:!this.state.single})}/>
this.setState({marred:!this.state.single})}/>

希望这对你有用。:)

确实存在三个条件

  • 用户尚未选择框
  • 用户选择单个
  • 用户选择已婚 如果您有验证,这意味着用户必须选中一个框,那么您可以对第一个条件进行折扣。因此,一旦用户选择了一个框,就可以通过只知道其中一个框的状态来判断他们的选择是什么。所以,如果你有一个检查验证的按钮,你可以这样做

    <Button 
      title={'check married status'}
      onPress={() => {
       if (!this.state.single && !this.state.married) {
         alert('Please check a box)
       } else {
         // we only need to check one of them
         let marriedStatus = this.state.married ? 'married' : 'single';
         alert(`You are ${marriedStatus}`)
         // then you can do what you want with the marriedStatus here
       }
      }}
    />
    
    {
    如果(!this.state.single&!this.state.已婚){
    警报('请勾选一个框)
    }否则{
    //我们只需要检查其中一个
    let marriedStatus=this.state.marred.“已婚”:“单身”;
    警报(`You is${marriedStatus}`)
    //然后你就可以对这里的婚姻状态做你想做的
    }
    }}
    />
    
    你有单身和已婚的州。所选的一个将为真。所以你已经知道选中了哪个复选框了。@HemantParashar好的,但是如果我想在一个post通话中发送true,我该怎么做呢?我想你需要重新表述你的问题,并提供更多关于你真正想要实现的目标的信息,并提供与此相关的代码。现在这太模糊了。@Andrew console.log(This.state.married)或console.log(This.state.single),它们根据选中的值返回true或false,但问题是我只需要true值,而不使用2states@Andrew这是我的观点我不知道怎么检查