Javascript 如何在一个函数中使用两个useState,以便第二个useState可以使用第一个更新的useState?
反应: 我正在尝试创建todoapp,但负责添加新任务的组件有问题。我想为新任务指定一个添加日期。这是我的组件任务列表是所有任务的列表: 从react导入{useState}; const ListHandler={tasksList,setTasksList}=>{ 常量[newTask,setNewTask]=useState{ id:tasksList.length, 内容:, 完成:错误, 主动:对, 日期:空, }; 常量inputHandler=e=>{ setNewTaskprevState=>{ …国家, 内容:目标价值, }; }; const addHandler=e=>{ e、 防止违约; setNewTaskprevState=>{ …国家, 日期:新建date.toTimeString.split[0], }; setTasksListprevState=>[…prevState,newTask]; }; 回来 inputHandlere} > addHandlere}> 添加任务 ; };Javascript 如何在一个函数中使用两个useState,以便第二个useState可以使用第一个更新的useState?,javascript,reactjs,react-hooks,use-state,Javascript,Reactjs,React Hooks,Use State,反应: 我正在尝试创建todoapp,但负责添加新任务的组件有问题。我想为新任务指定一个添加日期。这是我的组件任务列表是所有任务的列表: 从react导入{useState}; const ListHandler={tasksList,setTasksList}=>{ 常量[newTask,setNewTask]=useState{ id:tasksList.length, 内容:, 完成:错误, 主动:对, 日期:空, }; 常量inputHandler=e=>{ setNewTaskpre
导出默认ListHandler 这是因为新任务将在下一次渲染中可用,您可以执行以下操作,例如:
const addHandler = (e) => {
e.preventDefault();
const newDate = date: new Date().toTimeString().split(" ")[0];
setNewTask((prevState) => ({
...prevState,
date: newDate
}));
setTasksList((prevState) => [...prevState, {...newTask, date: newDate }]);
};
这可能会解决您的问题。创建一个新的状态TaskName用于处理更改输入,并修复了addhandler函数和inputhandler
const [newTask, setNewTask] = useState([]);
const [taskName, setTaskName] = useState("");
const inputHandler = (e) => {
setTaskName(e.target.value);
};
const addHandler = (e) => {
e.preventDefault();
setNewTask([...newTask,{
id: newTask.length+1,
content: taskName,
done: false,
active: true,
date: new Date().toTimeString().split(" ")[0],
}]);
setTaskName("");
};