【发布时间】:2021-05-16 19:09:24
【问题描述】:
制作一个小型待办事项应用程序,我想添加在检查任务时将检查的任务放入数组的功能。第一次单击任务控制台时会显示一个空数组,然后在取消选中并再次选中时,我的数组会更新。为什么需要两次单击才能更新数组?
function SelectTodo({ todo }) {
const [checkboxChecked, setCheckboxChecked] = React.useState([]);
const handleInputChange = (e) => {
const checked = e.target.checked;
let value = e.target.value;
if (checked) {
setCheckboxChecked((prevChecked) => [...prevChecked, value]);
console.log("checkBoxArrray:" + checkboxChecked);
} else {
console.log("unchecked");
}
};
return (
<label className="todo-list__label">
<div className="form-check form-check-inline">
<input
className="form-check-input"
type="checkbox"
name="task"
id="inlineCheckboxh1"
value={todo}
onChange={handleInputChange}
/>
<label className="form-check-label" htmlFor="inlineCheckboxh1">
{todo}
</label>
</div>
</label>
);
}
ReactDOM.render(<SelectTodo todo={5} />, document.getElementById("root"));
<div id="root" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.production.min.js"></script>
【问题讨论】:
-
能否提供
codesandbox或类似的代码链接?