Redux: Erreur de code dans l'exemple expliqué dans la doc API pour "combineReducers" ?

Créé le 14 avr. 2016  ·  3Commentaires  ·  Source: reduxjs/redux

Dans l'exemple décrit dans le cadre de la doc API de "combineReducers", au moment de la création du store, "reducer" en paramètre est passé à createStore dans le fichier " app.js " ( let store = createStore(reducer) ).

Cependant dans " reducers/index.js ", le nom de la fonction est " combineReducers " et non " reducer " ( export default combineReducers({..}) ).

Alors le paramètre transmis à la création de la boutique ne devrait-il pas être "combineReducers" (Ex : let store = createStore(combineReducers )) ??

Commentaire le plus utile

Je dirais non. Si vous y réfléchissez, Redux n'a qu'une seule fonction de réduction. Le fait que cet exemple utilise combineReducers pour créer cette fonction est un détail d'implémentation. En ce qui concerne app.js , il ne sait pas ou ne se soucie pas de ce qui se passe à l'intérieur de cette fonction, comment nous l'avons créé ou ce qu'il fait.

Notez également que lorsque reducers/index.js fait export default combineReducers({}) , ce n'est pas réellement _créer_ une chose nommée "combineReducers". Il dit "prendre le résultat de cet appel de fonction, quel qu'il soit, et en faire l'exportation par défaut". En fait, techniquement, cette sortie n'a même pas de vrai nom de variable associé.

Enfin, notez que lorsque vous faites export default , quel que soit le fichier importé, cette exportation par défaut peut donner n'importe quel nom à la variable locale, de la même manière qu'une définition de fonction peut nommer un paramètre différemment du nom de variable utilisé à le site d'appel. Exemples:

function someFunction(a, fred, randomVariableName) {}

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

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

Notez que les noms de variables que je définis en dehors de la fonction n'ont aucune correspondance avec les noms de paramètres à l'intérieur de la fonction.

De même, lors de l'exportation :

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

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

Tous les 3 commentaires

Je dirais non. Si vous y réfléchissez, Redux n'a qu'une seule fonction de réduction. Le fait que cet exemple utilise combineReducers pour créer cette fonction est un détail d'implémentation. En ce qui concerne app.js , il ne sait pas ou ne se soucie pas de ce qui se passe à l'intérieur de cette fonction, comment nous l'avons créé ou ce qu'il fait.

Notez également que lorsque reducers/index.js fait export default combineReducers({}) , ce n'est pas réellement _créer_ une chose nommée "combineReducers". Il dit "prendre le résultat de cet appel de fonction, quel qu'il soit, et en faire l'exportation par défaut". En fait, techniquement, cette sortie n'a même pas de vrai nom de variable associé.

Enfin, notez que lorsque vous faites export default , quel que soit le fichier importé, cette exportation par défaut peut donner n'importe quel nom à la variable locale, de la même manière qu'une définition de fonction peut nommer un paramètre différemment du nom de variable utilisé à le site d'appel. Exemples:

function someFunction(a, fred, randomVariableName) {}

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

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

Notez que les noms de variables que je définis en dehors de la fonction n'ont aucune correspondance avec les noms de paramètres à l'intérieur de la fonction.

De même, lors de l'exportation :

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

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

@markerikson Merci pour ces excellentes réponses.

Merci beaucoup @markerikson.

J'apprends Redux à utiliser avec JQuery, moins la connaissance de React. Votre réponse m'aide maintenant à mieux comprendre les exemples avec le code React.

Cette page vous a été utile?
0 / 5 - 0 notes