【发布时间】:2020-09-24 11:24:24
【问题描述】:
参见下面的 sn-p:
使用 React 控制复选框输入时,使用 value 或 checked 属性有什么区别?
我应该使用哪一个?
function App() {
const [inputState, setInputState] = React.useState(false);
function onChange(event) {
const inputValue = event.target.checked;
setInputState(inputValue);
}
return(
<React.Fragment>
<div>
Using value
<input
type="checkbox"
onChange={onChange}
value={inputState} // USES value
/>
</div>
<div>
Using checked
<input
type="checkbox"
onChange={onChange}
checked={inputState} // USES checked
/>
</div>
</React.Fragment>
);
}
ReactDOM.render(<App/>, document.getElementById("root"));
input {
transform: scale(1.5) translateX(10px);
}
div {
margin: 16px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.3/umd/react-dom.production.min.js"></script>
<div id ="root"/>
【问题讨论】:
-
value-based 复选框不受控制,因为切换状态(例如使用另一个复选框)不会影响其状态 -
如果没有清楚地了解接下来将如何处理这些复选框,您将得到模糊的意见,而不是中肯的答案。
-
@YevgenGorbunkov 我需要控制它的状态并从中读取
true或false。
标签: javascript html reactjs input react-hooks