2017-03-26 2 views
-1

Ich habe eine Tabelle mit 50 Zeilen, jede Zeile ist ein Element aus einer Liste.Reagieren Reduce Artikel in einer Liste ändern

Ich möchte das Element als ausgewählt markieren, wenn ich auf ein Kontrollkästchen in der Zeile klicke.

Dadurch sehe ich, dass alle 50 Zeilen rerender sind.

Wie kann ich nur den bestimmten Artikel einstellen? (Ohne sancenkomponentupdate).

case ITEM_SELECTED: 
     const items = fromJS(state.items) 
      items.update(
      items.findIndex(function(item) { 
       return item._id == action.id; 
      }), function(item) { 
       return item.selected = action.selected; 
      } 
     ); 
     return { 
      ...state, 
      items: items.toJS() 
     } 

Thanks :)

+0

A. Kein versuchter Code zur Verfügung stellen. B. Sehr offen beendet. C. Trauriger Panda. –

+0

kann einige Code auch teilen, Tabelle sowie die Funktion, in der die Auswahl :) –

+0

Durch die Verbindung einzelner Zeilenkomponenten anstelle einer enthaltenen Komponente sollten Sie in der Lage sein zu vermeiden, das Rendern, obwohl ich nicht die Mühe machen würde unter den meisten Umständen. Wie andere Benutzer bereits erwähnten, würden uns einige weitere Details helfen, Ihre Frage besser zu beantworten. –

Antwort

0

Sie key zu jedem Element hinzugefügt haben? Reagieren verwendet key, um festzustellen, ob sich ein Geschwisterelement geändert hat.

https://facebook.github.io/react/docs/lists-and-keys.html#keys

+0

Sie haben genügend Ruf, um irgendwelche Fragen zu kommentieren, also anstatt Fragen als Antwort zu stellen, fragen Sie es in den Kommentaren, posten Sie die Antwort, wenn es wirklich die Fragen des OPs beantwortet :) –

+0

oh Recht! Danke für den Tipp. –

+0

Ja, ich habe schon einen Schlüssel benutzt – user3712353

Verwandte Themen