P粉4753151422023-09-03 10:59:11
你遇到的問題是你在傳遞的物件中使用了先前的狀態,例如使用了擴充運算子"prev"。
你想要做的是在儲存到狀態的新物件中包含先前的狀態,例如"prev"作為陣列中的一個單獨元素 - 如下所示。
我還提供了一個codesandbox https://codesandbox.io/s/romantic-solomon-l566yy?file=/src/App.js。
import "./styles.css"; import React, { useState } from "react"; const App = () => { const [entries, setEntries] = useState([ { date: "", text: "" } ]); const handleClick = () => { setEntries((prevEntry) => { return [...prevEntry, { date: "date", text: "test" }]; }); }; return ( <div> <button onClick={handleClick}>Click me!</button> </div> ); }; export default App;