2016-11-11 2 views
1

Wenn ich eine React-Komponente verwende, die ich zweimal verwende, wie kann ich Aktionen an den Store senden, um den entsprechenden Wert für den einen, aber nicht den anderen Wert zu ändern? ZBSenden von Redux-Aktionen für wiederverwendbare React-Komponenten

Wie isoliere ich die beiden Werte von ComponentContainer mit dieser Struktur? Mir ist klar, dass ich die Container-IDs den Reduzierern zuweisen sollte, aber ich bin mir nicht sicher, wo.

Antwort

1

Eine Lösung besteht darin, dass das Aktionsobjekt ein zusätzliches Feld hat (z. B. componentId), das dem Reduzierer sagt, welche Komponente diese Aktion betrifft.

Rufen Sie Ihre Aktion Schöpfer wie dies aus der Komponente

<div onClick={handleChange(props.value++, props.componentId)}> 

(Beachten Sie, wie componentId ist jetzt eine erforderliche Stütze) so

<Provider store={store}> 
    <div> 
    <ComponentContainer componentId="c1" /> 
    <ComponentContainer componentId="c2"/> 
    </div> 
</Provider> 

Sie könnten tatsächlich die Reduzierung Wiederverwendung bereits nur wickeln haben es int ein anderes, das Ihren Reduzierer mit entsprechendem Zweig des Zustandes (passend die componentId)

nennen würde
Verwandte Themen