透過鍵值對將數組填充
P粉865900994
P粉865900994 2023-09-02 16:55:11
0
1
527
<p>我正在嘗試用物件填充一個陣列。如果我執行setState,新的條目不會被添加,但是數組的結構會被擴展。例如:初始條目(0),新條目(0->0),另一個條目(0->0->0)。然而,我希望每個條目都有一個連續編號。 </p> <pre class="brush:php;toolbar:false;">const [entrys, setEntrys] = useState([{ date: "", entry: "" }]); ->點擊按鈕 setEntrys((prev) => [{ ...prev, date: clickedDay, entry: hinweis }]);</pre>
P粉865900994
P粉865900994

全部回覆(1)
P粉475315142

你遇到的問題是你在傳遞的物件中使用了先前的狀態,例如使用了擴充運算子"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;
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板