首页  >  问答  >  正文

通过键值对将数组填充

<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粉865900994P粉865900994435 天前501

全部回复(1)我来回复

  • P粉475315142

    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;

    回复
    0
  • 取消回复