Javascript React onChange需要双击以获取所选值

Javascript React onChange需要双击以获取所选值,javascript,reactjs,Javascript,Reactjs,我目前有一个接受“是”或“否”(收音机)的表格 我希望它将所选值传递给一个状态。我设法让它工作,但问题是,我需要双击所选的,它注册 以下是我当前代码的场景: 默认值为“否”,如果我单击“是”,该值仍为“否”。如果我双击“是”,该值将变为“是”。如果我再次单击“否”,该值仍为“是”,直到我双击“否” 以下是我当前的代码: //Initialize variables const [answer,setAnswer] = useState({ has_commendations: f

我目前有一个接受“是”或“否”(收音机)的表格

我希望它将所选值传递给一个状态。我设法让它工作,但问题是,我需要双击所选的,它注册

以下是我当前代码的场景: 默认值为“否”,如果我单击“是”,该值仍为“否”。如果我双击“是”,该值将变为“是”。如果我再次单击“否”,该值仍为“是”,直到我双击“否”

以下是我当前的代码:

//Initialize variables
const [answer,setAnswer] = useState({
        has_commendations: false,
        has_complaints: false      
    })
关于回答函数

const onStaticAnswerClick = (e,number) => {
        // Static question number 7
        if(number === 7) {
            setAnswer({
                ...answer,
                has_commendations:Boolean(Number(e.target.value))
              
            })

        }
        
        // Static question number 8
        if(number === 8) {
            setAnswer({
                ...answer,
                has_complaints:Boolean(Number(e.target.value)),

            })
            
        }
    }
收音机的选择

<div className="ml-2 mt-1 d-flex flex-row mt-2">
  <div className="form-check form-check-inline">
    <input 
       className="form-check-input" 
       type="radio" 
        onClick={e => onStaticAnswerClick(e,7)} 
        name="inlineRadioOptions" 
        id="inlineRadio17"
        value={0}
        defaultChecked
  />
  <label className="form-check-label" htmlFor="inlineRadio1">No</label>
        </div>
    <div className="form-check form-check-inline ml-3">
      <input 
        className="form-check-input" 
          type="radio" 
           onClick={e => onStaticAnswerClick(e,7)} 
            name="inlineRadioOptions" 
             id="inlineRadio17"
             value={1}
         />

     <label className="form-check-label" htmlFor="inlineRadio2">Yes</label>
   </div>


onStaticAnswerClick(e,7)}
name=“inlineradioptions”
id=“inlineRadio17”
值={0}
默认检查
/>
不
onStaticAnswerClick(e,7)}
name=“inlineradioptions”
id=“inlineRadio17”
值={1}
/>
对

我现在真的很困惑。提前感谢您的帮助

尝试使用
onChange

 <input 
    className="form-check-input" 
    type="radio" 
    onChange={e => onStaticAnswerClick(e,7)} 
    name="inlineRadioOptions" 
    id="inlineRadio17"
    value={1}
     />
onStaticAnswerClick(e,7)}
name=“inlineradioptions”
id=“inlineRadio17”
值={1}
/>

Hi,我现在刚试过,效果不错(额外的好处是我不能再双击同一个按钮)。但现在的问题是,我的第一次单击始终是默认值(例如,从默认值“否”单击到“是”将具有“否”的值,但在“否”和“是”之间来回现在将生成正确的值。如果我要猜测,我需要一种方法让它立即注册所选值,例如,在第一次单击时触发onChange。我是否正确?请注意,我翻转了Yes(1)和No(0)的值,以适应更改。这两个单选按钮是否应该链接?是否只有两个按钮?或者您正在谈论切换?肯定是两个单选按钮。抱歉,但链接是什么意思?如果我的说明有帮助,我的单选选项看起来是这样的:()否()是的,因为一次只能选择一个单选按钮,所以您的
if else
语句不起作用。它只包含值。单选按钮就是这样工作的。因此,在决定如何使用它之前,您必须先看看它是如何工作的。