Heim  >  Fragen und Antworten  >  Hauptteil

Füllen Sie ein Array mit Schlüssel-Wert-Paaren

<p>Ich versuche, ein Array mit Objekten zu füllen. Wenn ich setState ausführe, werden keine neuen Einträge hinzugefügt, sondern die Struktur des Arrays erweitert. Zum Beispiel: erster Eintrag (0), neuer Eintrag (0->0), weiterer Eintrag (0->0->0). Allerdings möchte ich, dass jeder Eintrag eine fortlaufende Nummer hat. </p> <pre class="brush:php;toolbar:false;">const [entrys, setEntrys] = useState([{ date: "", Eintrag: "" }]); ->Klicken Sie auf die Schaltfläche setEntrys((prev) => [{ ...prev, date: clickedDay, Eintrag: hinweis }]);</pre>
P粉865900994P粉865900994435 Tage vor502

Antworte allen(1)Ich werde antworten

  • 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;

    Antwort
    0
  • StornierenAntwort