通过键值对将数组填充
P粉865900994
P粉865900994 2023-09-02 16:55:11
0
1
507
<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;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板