React 组件上的单选按钮需要额外点击才能标记
Radio buttons on a React component take an extra click to be marked
我有一个非常简单的 React 功能组件,其中 div 带有一些无线电类型的输入。
就像这样:
const radioHandler = (event) => {
event.preventDefault();
console.log(event.target.value);
}
return(
<div className="radioDiv" onChange={radioHandler}>
<label>My label:</label>
<input type="radio" value="1" name="group_x" checked/> One
<input type="radio" value="2" name="group_x"/> Two
<input type="radio" value="3" name="group_x"/> Three
</div>
);
看起来很简单,像这样:
发生的情况是,默认情况下会根据需要选中选项编号 1。但是,当我单击其他项时,需要额外单击才能实际更改为我要检查的项。我添加了一个 '''preventDefault()''' 方法,因为如果没有它,我会单击选项 2,然后单击选项 3,它会跳转到默认选中的选项,而不是 3。但是使用 preventDefault
需要额外单击才能使蓝点实际转到所需的选项。为什么是这样?我怎样才能让它正常工作?
希望这对您有所帮助:
基本上删除了 preventDefault 行为和 defaultChecked 而不是 checked。
import "./styles.css";
export default function App() {
const radioHandler = (event) => {
console.log(event.target.value);
};
return (
<div className="radioDiv" onChange={radioHandler}>
<label>My label:</label>
<input type="radio" value="1" name="group_x" defaultChecked /> One
<input type="radio" value="2" name="group_x" /> Two
<input type="radio" value="3" name="group_x" /> Three
</div>
);
}
我有一个非常简单的 React 功能组件,其中 div 带有一些无线电类型的输入。 就像这样:
const radioHandler = (event) => {
event.preventDefault();
console.log(event.target.value);
}
return(
<div className="radioDiv" onChange={radioHandler}>
<label>My label:</label>
<input type="radio" value="1" name="group_x" checked/> One
<input type="radio" value="2" name="group_x"/> Two
<input type="radio" value="3" name="group_x"/> Three
</div>
);
看起来很简单,像这样:
发生的情况是,默认情况下会根据需要选中选项编号 1。但是,当我单击其他项时,需要额外单击才能实际更改为我要检查的项。我添加了一个 '''preventDefault()''' 方法,因为如果没有它,我会单击选项 2,然后单击选项 3,它会跳转到默认选中的选项,而不是 3。但是使用 preventDefault
需要额外单击才能使蓝点实际转到所需的选项。为什么是这样?我怎样才能让它正常工作?
希望这对您有所帮助: 基本上删除了 preventDefault 行为和 defaultChecked 而不是 checked。
import "./styles.css";
export default function App() {
const radioHandler = (event) => {
console.log(event.target.value);
};
return (
<div className="radioDiv" onChange={radioHandler}>
<label>My label:</label>
<input type="radio" value="1" name="group_x" defaultChecked /> One
<input type="radio" value="2" name="group_x" /> Two
<input type="radio" value="3" name="group_x" /> Three
</div>
);
}