【发布时间】:2022-11-17 02:41:04
【问题描述】:
const [fullName, setFullName] = useState({
fName: "",
lName: ""
});
function handleOnChange(event) {
const newValue = event.target.value;
const inputName = event.target.name;
我正在从反应表单中获取输入,该表单有 2 个输入 - fName 和 lName。现在我发现我可以通过以下两种方式更新名字和姓氏。
setFullName((preValue) => {
if (inputName === "fName") {
return { ...preValue, fName: newValue };
} else if (inputName === "lName") {
return { ...preValue, lName: newValue };
}
)
VS
if (inputName === "lName") setFullName({ ...fullName, lName: newValue });
else if (inputName === "fName") setFullName({ ...fullName, fName: newValue });
但是当我在网上看到例子时,我看到每个人都是通过回调函数(即第一种方法)来访问状态的先前值。这样做有什么特别的好处吗?
【问题讨论】:
-
是的,引用自 React:在后续重新渲染期间,useState 返回的第一个值将始终是应用更新后的最新状态。
标签: reactjs react-hooks