【发布时间】:2021-01-08 16:33:29
【问题描述】:
什么是最好的(选项1:true),同时需要将其他状态更改为false
其他州也需要做同样的事情, (选项2,选项3.....)
const [state, setState] = useState({
option1: false,
option2: false,
option3: false,
option4: false,
});
return (
<div>
<input
type="checkbox"
onClick={() => setState(state => ({ ...state, option1: true }))}
/>
<input
type="checkbox"
onClick={() => setState(state => ({ ...state, option2: true }))}
/>
<input
type="checkbox"
onClick={() => setState(state => ({ ...state, option3: true }))}
/>
</div>
)
}
【问题讨论】:
-
为什么不使用辅助函数并将其绑定到复选框的
click事件。您可以将目标option作为参数传递给函数。该函数将运行一个循环并将所有option设置为false,除了目标option将设置为true。 -
您可以尝试使用
useState({ selectedOption: 0 });和onClick={() => setState(state => ({ selectedOption: 1 }))}等。如果您在其他地方需要这4 个布尔值,那么您可以从这个单一状态值中获得这些值。 -
另外注意:不要忘记再次单击同一个复选框会再次将其关闭,但到目前为止,无论它是打开还是关闭,您都运行相同的代码。跨度>
标签: javascript arrays reactjs react-hooks use-state