HTML Button in Table die Reihe auswählen?

regex9  18.10.2021, 23:57

Wie kann man sich das vorstellen? In jeder Reihe ist ein Button und bei Klick wird die Reihe farblich hervorgehoben? Oder geht es um eine bestimmte Aktion (Zeile löschen o.ä.)?

Million322 
Beitragsersteller
 19.10.2021, 11:36

Ja ein lösch Button. Das geht auch allerdings in react keine Ahnung. In normalen js und HTML hab ich das hinbekomme

1 Antwort

Du wirst eine Funktion haben, die dir deine Tabellenreihen ausgibt. Zum Beispiel:

renderTableRows(data) {
  return someData.map((person, index) => {
    return (
      <tr>
        <td>{person.name}</td>
        <td>{person.age}</td>
        <td><button data-id={person.id} onClick={this.removeEntry}>Remove</button></td>
      </tr>
    );
  });
}

In der gibst du einfach nur deinen Button mit aus und fügst ein onClick-Attribut auf ihm hinzu. Dazu brauchst du noch die Funktion, die dort gebunden wird:

removeEntry = () => {
  const personId = e.target.getAttribute("data-id");
  /* do something ... */
}

In dieser könntest du vom Button (dieser ist das angeklickte Element: target) den Wert des data-Attributs einholen. Ob du da nun eine ID hineingibst oder irgendeinen anderen Wert, ist dir überlassen. Hauptsache es ist ein Wert, an dem du die Datenzeile in deiner Datenliste (im obigen Snippet someData) eindeutig identifizieren kannst. Dann kannst du in ihr nämlich nach den Eintrag suchen und ihn herauslöschen.