【问题标题】:Fill array with key-value values用键值对填充数组
【发布时间】:2023-02-06 18:30:22
【问题描述】:

我正在尝试用对象填充数组。如果我执行 setState,不会添加新条目,但会扩展数组的结构。示例:初始条目 (0)、新条目 (0->0)、另一个条目 (0->0->0)。但是我希望每个条目都有一个连续编号

const [entrys, setEntrys] = useState([{ date: "", entry: "" }]);
->click on button
setEntrys((prev) => [{ ...prev, date: clickedDay, entry: hinweis }]);

【问题讨论】:

  • prev 传播到数组中,而不是新对象 - [...prev, { date: clickedDay, entry: hinweis }]

标签: reactjs react-native react-hooks


【解决方案1】:

你遇到的问题是你已经包含了以前的状态,例如“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;

【讨论】:

    猜你喜欢
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多