【发布时间】:2021-05-13 00:56:31
【问题描述】:
反应:
我正在尝试创建 todoapp,但负责添加新任务的组件有问题。我想为新任务分配添加日期。这是我的组件(tasksList 是所有任务的列表):
import { useState } from "react";
const ListHandler = ({ tasksList, setTasksList }) => {
const [newTask, setNewTask] = useState({
id: tasksList.length,
content: "",
done: false,
active: true,
date: null,
});
const inputHandler = (e) => {
setNewTask((prevState) => ({
...prevState,
content: e.target.value,
}));
};
const addHandler = (e) => {
e.preventDefault();
setNewTask((prevState) => ({
...prevState,
date: new Date().toTimeString().split(" ")[0],
}));
setTasksList((prevState) => [...prevState, newTask]);
};
return (
<section className="listHandler">
<form className="form">
<input
className="form__input"
onChange={(e) => inputHandler(e)}
></input>
<button className="form__button" onClick={(e) => addHandler(e)}>
Add Task
</button>
</form>
</section>
);
};
export default ListHandler;
当我单击按钮时,我会在 tasksList 中获得一个带有 null 日期的新任务,因为在更新 newTask 之前调用了 setTasksList,对吧?我的问题是如何解决这个问题?
【问题讨论】:
标签: javascript reactjs react-hooks use-state