【发布时间】:2019-11-24 03:49:07
【问题描述】:
更改复选框值的正确方法是什么?
选项 1
import React, { useState } from "react";
import ReactDOM from "react-dom";
import "./styles.css";
function App() {
const [x, setX] = useState(false);
const soldCheckbox = ({ target: { checked } }) => {
console.log(x, checked);
setX(checked);
};
return (
<div>
<input type="checkbox" checked={x} onChange={soldCheckbox} />
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
选项 2
import React, { useState } from "react";
import ReactDOM from "react-dom";
import "./styles.css";
function App() {
const [x, setX] = useState(false);
console.log(x);
return (
<div>
<input type="checkbox" checked={x} onChange={() => setX(!x)} />
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
其实我觉得没什么区别,只是想听听不一样的意见。也许是我不知道的事情,或者这个问题可能有其他解决方案。
【问题讨论】:
-
两者都是正确的,但是如果您打算重用该方法,则从输入中抽象出该方法可能会有所帮助。
-
在这种特定情况下,我会选择选项 2,我认为代码更简洁,setX 更改状态,如果我们知道值是,则不需要调用 setX 并从事件中提取值的函数x
标签: javascript reactjs checkbox