2017-02-13 28 views
0

Ich übe mit React-Redux. Ich weiß, dass diese Frage ziemlich einfach klingt ... Aber ich kann nicht herausfinden, wie man es löst. Ich habe eine Funktion, die ein Objekt erzeugt. Ich möchte es an den Store weitergeben, aber ich weiß nicht, wie ich die Aktion ohne Benutzeraktion auslösen soll (z. B. auf die Schaltfläche).Redux React - Wie aktualisiert man den Store ohne Benutzerereignis?

Die Funktion FunctionB gibt ein Objekt (oder eine JSON-Datei) zurück. Also, wie übergebe ich das Objekt (oder JSON) an den Store -so, um es in einer anderen Komponente zu verwenden?

Im Folgenden zeige ich meinen letzten Versuch. Ich weiß, es ist falsch und hat nicht viel Sinn. Aber vielleicht klärt es ein bisschen mehr auf, was ich will (die Daten werden gespeichert, um sie in einer anderen Komponente darzustellen, die kein Kind des Containers ist). Die "BiultInComponent" kann nicht so modifiziert werden, dass sie den Propeller "resultingData" enthält. Ich bin ein Neuling, also ist es ziemlich wahrscheinlich, dass ich mich in einigen Punkten/Annahmen geirrt habe.

class MyContainerA extends Component { 
     render() 
     return (
      <BuiltInCompoment propA={data} propB={ FunctionA } /> 
     ) 
    } 

    function matchDispatchToProps(dispatch){ 
     return bindActionCreators({resultingData: resultingData}, dispatch); 
    } 

function FunctionA(object) { 

     ... 
     var dataToPassToStore = FunctionB(object.property); 
     return this.props.resultingData(dataToPassToStore) 
} 

exports default connect(matchDispatchToProps)(MyContainerA) 

Jeder Vorschlag ist willkommen. Vielen Dank.

+0

Binden Sie eine Aktion an die Komponente und Sie können Ihre Aktion einfach durch die Requisite aufrufen. – Win

+0

Komponenten sind nur vorhanden, um Daten anzuzeigen und Ereignisse zu verarbeiten (Klicks, Ajax-Antworten usw.). Unter welchen Umständen möchten Sie dieses Objekt an Ihr Geschäft weitergeben? Seitenlade? Ausgangszustand? So ziemlich alles ist eine Art "Event" – azium

+0

Vielen Dank für Ihre Antworten @Win. Ich habe gerade eine Art von Beispiel hinzugefügt, was ich habe. – Dubliner

Antwort

0

Untersuchen Sie die Untersuchung actions und reducers. Ich glaube, dass diese beiden, die Redox-Kern sind, Ihnen helfen werden, das zu erreichen, was Sie zu erreichen versuchen.

+0

Hallo @Patrick. Vielen Dank für Ihren Kommentar. Ich habe bereits einen Reducer und eine Aktion. Was ich nicht herausfinden kann ist, wie man es in den Laden bringt. Soll ich einen Container MyContainerA anstelle von MyComponentA erstellen? Es wird wahrscheinlich eine wirklich einfache Sache sein ... aber ich kann es sehen. Ich lese über Versand und bindActionCreator ... – Dubliner

+0

Ist 'MyComponentA' mit dem Laden verbunden? – patrick

+0

Hallo @ Patrick. Nein, ist es nicht. Es würde helfen, wenn es verbunden wäre? Angenommen, ist eine Art Formular, das Daten mithilfe von FunctionB erfasst und verarbeitet. Und ich möchte diese verarbeiteten Daten in anderen Teilen der App rendern. Deshalb muss ich es in den Laden geben. – Dubliner

Verwandte Themen