2017-06-19 1 views
0

Ich habe es mit einer einfachen Demonstration versucht, und es scheint zu funktionieren. Aber nur um sicher zu gehen, gibt es etwas in Redux oder Redux Middlewares, die eine Aktion erfordern, um ein Objekt mit einer "Typ" -Eigenschaft zu sein? Ich habe ein paar Tutorials gelesen, in denen die "Typ" -Eigenschaft betont wurde, ein Muss zu sein.kann ich eine Aktion als Array anstelle eines Objektliterals versenden?

Vorher:

dispatch({ type: 'DO_SOMETHING', info: 1 }); 

nach:

dispatch(['DO_SOMETHING', 1]); 

Antwort

1

Die Redux Dokumentation erfordert ausdrücklich, dass Sie eine Art Eigenschaft bieten:

http://redux.js.org/docs/basics/Actions.html

Aktionen sind einfach JavaScript o Objekte. Aktionen müssen über eine type-Eigenschaft verfügen, die den Typ der auszuführenden Aktion angibt. Typen sollten normalerweise als String-Konstanten definiert werden.

Darüber hinaus scheint Redux eine Ausnahme in dispatch zu werfen, wenn Sie:

Do Sie haben eine Middleware, die die abgesendete Payload in irgendeiner Weise transformiert?

0

@TomW ist korrekt - Sie können keine Arrays mit einem Standard-Redux-Speicher senden. Es ist möglich, Middleware zu schreiben, die nach verteilten Arrays sucht und diese auf irgendeine Weise abfängt. Jedoch muss alles, was tatsächlich die Reduzierungen erreicht, ein einfaches Objekt mit einem type Feld sein.

Sie können meinen Blogpost Idiomatic Redux: The Tao of Redux, Part 1 - Implementation and Intent lesen, wo ich die tatsächlichen technischen Beschränkungen erörtern, die Redux erfordert und warum diese existieren. Es gibt auch eine etwas verwandte Diskussion in redux#1813, wo jemand eine Pull-Anfrage eingereicht hat, die versucht, die Fähigkeit hinzuzufügen, mehrere Aktionen gleichzeitig zu versenden, ohne wirklich zu verstehen, wie alle Teile zusammenpassen.

Verwandte Themen