在反应中使用 useState 钩子时如何读取更新数组的值?

How to read the value of updated array while using useState hook in react?

我正在尝试在 React 中构建我的第一个待办事项列表应用程序,但我似乎无法成功地从我使用 useState([]) 启动的“列表”数组中读取数据。 我面临的问题是 - 如果我第一个输入的任务是“1-Eat Breakfast”并且我点击添加按钮,我在 console.log 中得到一个空数组, 当我进入我的第二个任务时,可以说 - “2-Hit the gym”;那是我之前的任务是记录控制台的时间。所以,显然我无法读取数组的最新状态——“列表”。 你能指出我在下面给出的代码中做错了什么吗? 非常感谢。

import { useState } from "react";

const ToDo = () => {
  const [task, setTask] = useState("");
  const [list, setList] = useState([]);

  const readData = (event) => {
    event.preventDefault();
    setTask(event.target.value);
  };

  const showList = (event) => {
    event.preventDefault();
    setList([...list, task]);
    console.log(list);
  };

  return (
    <div>
      <div>
        <form onSubmit={showList}>
          <input type="text" value={task} onChange={readData} />
          <button>Add to List</button>
        </form>
      </div>
    </div>
  );
};

export default ToDo;

你能改变吗

 const showList = (event) => {
    event.preventDefault();
    setList([...list, task]);
    console.log(list);
  };

 const showList = (event) => {
    event.preventDefault();
    list.push(task);
    setList(list);
    console.log(list);
  };