Redux: Codefehler im Beispiel, das im API-Dokument für "combineReducers" erklärt wird?

Erstellt am 14. Apr. 2016  ·  3Kommentare  ·  Quelle: reduxjs/redux

In dem als Teil des API-Dokuments von „combineReducers“ beschriebenen Beispiel wird zum Zeitpunkt der Store-Erstellung „reducer“ als Parameter in der Datei „ app.js “ ( let store = createStore(reducer) ) an createStore übergeben.

In " Reducers/index.js " export default combineReducers({..}) ).

Sollte also der Parameter, der beim Anlegen des Stores übergeben wird, nicht "combineReducers" lauten (zB: let store = createStore(combineReducers )) ??

Hilfreichster Kommentar

Ich würde nein sagen. Wenn man darüber nachdenkt, hat Redux nur eine einzige Reduzierfunktion. Die Tatsache, dass in diesem Beispiel combineReducers , um diese Funktion zu erstellen, ist ein Implementierungsdetail. Was app.js betrifft, ist es egal, was in dieser Funktion vor sich geht, wie wir sie erstellt haben oder was sie tut.

Beachten Sie auch, dass, wenn reducers/index.js export default combineReducers({}) reducers/index.js tut, es nicht wirklich ein Ding namens "combineReducers" _erstellt_. Es heißt "Nehmen Sie das Ergebnis dieses Funktionsaufrufs, was auch immer es ist, und machen Sie es zum Standardexport." Tatsächlich ist dieser Ausgabe technisch nicht einmal ein echter Variablenname zugeordnet.

Beachten Sie schließlich, dass, wenn Sie export default ausführen, jede Datei, die dieser Standardexport importiert, der lokalen Variablen einen beliebigen Namen geben kann, genauso wie eine Funktionsdefinition einen Parameter anders benennen kann als der Variablenname, bei dem er verwendet wurde die Anrufseite. Beispiele:

function someFunction(a, fred, randomVariableName) {}

const firstVariable = 1;
const theMeaningOfLife = 42;
const aTotallyUselessName = "Whatever";

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

Beachten Sie, dass die Variablennamen, die ich außerhalb der Funktion definiere, keine Entsprechung mit den Parameternamen innerhalb der Funktion haben müssen.

Ebenso beim Exportieren:

// fileA.js
export default const aThing = 42;

// fileB.js
import iCanGiveThisAnyNameIWant from "fileA";

Alle 3 Kommentare

Ich würde nein sagen. Wenn man darüber nachdenkt, hat Redux nur eine einzige Reduzierfunktion. Die Tatsache, dass in diesem Beispiel combineReducers , um diese Funktion zu erstellen, ist ein Implementierungsdetail. Was app.js betrifft, ist es egal, was in dieser Funktion vor sich geht, wie wir sie erstellt haben oder was sie tut.

Beachten Sie auch, dass, wenn reducers/index.js export default combineReducers({}) reducers/index.js tut, es nicht wirklich ein Ding namens "combineReducers" _erstellt_. Es heißt "Nehmen Sie das Ergebnis dieses Funktionsaufrufs, was auch immer es ist, und machen Sie es zum Standardexport." Tatsächlich ist dieser Ausgabe technisch nicht einmal ein echter Variablenname zugeordnet.

Beachten Sie schließlich, dass, wenn Sie export default ausführen, jede Datei, die dieser Standardexport importiert, der lokalen Variablen einen beliebigen Namen geben kann, genauso wie eine Funktionsdefinition einen Parameter anders benennen kann als der Variablenname, bei dem er verwendet wurde die Anrufseite. Beispiele:

function someFunction(a, fred, randomVariableName) {}

const firstVariable = 1;
const theMeaningOfLife = 42;
const aTotallyUselessName = "Whatever";

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

Beachten Sie, dass die Variablennamen, die ich außerhalb der Funktion definiere, keine Entsprechung mit den Parameternamen innerhalb der Funktion haben müssen.

Ebenso beim Exportieren:

// fileA.js
export default const aThing = 42;

// fileB.js
import iCanGiveThisAnyNameIWant from "fileA";

@markerikson Vielen Dank für diese tollen Antworten.

Vielen Dank @markerikson.

Ich lerne Redux, um mit JQuery verwendet zu werden, abzüglich der Kenntnisse von React. Ihre Antwort hilft mir nun, die Beispiele mit dem React-Code besser zu verstehen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

rui-ktei picture rui-ktei  ·  3Kommentare

benoneal picture benoneal  ·  3Kommentare

vslinko picture vslinko  ·  3Kommentare

timdorr picture timdorr  ·  3Kommentare

vraa picture vraa  ·  3Kommentare