Redux: ¿Error de código en el ejemplo explicado en el documento API para "combineReducers"?

Creado en 14 abr. 2016  ·  3Comentarios  ·  Fuente: reduxjs/redux

En el ejemplo descrito como parte del documento API de "combineReducers", en el momento de la creación de la tienda, "reducer" como parámetro se pasa a createStore en el archivo " app.js " ( let store = createStore(reducer) ).

Sin embargo, en " reducers / index.js ", el nombre de la función es "combineReducers" y no "reducer" ( export default combineReducers({..}) ).

Entonces, ¿no debería el parámetro transmitido en la creación de la tienda ser "combineReducers" (Ej .: let store = createStore(combineReducers ))?

Comentario más útil

Yo diría que no. Si lo piensas bien, Redux solo tiene una función reductora. El hecho de que este ejemplo use combineReducers para crear esa función es un detalle de implementación. En lo que respecta a app.js , no sabe ni le importa qué está pasando dentro de esa función, cómo la creamos o qué está haciendo.

Además, tenga en cuenta que cuando reducers/index.js hace export default combineReducers({}) , en realidad no está _creando_ una cosa llamada "combineReducers". Dice "tome el resultado de esta llamada a la función, sea lo que sea, y conviértalo en la exportación predeterminada". De hecho, técnicamente, esa salida ni siquiera tiene un nombre de variable real asociado.

Finalmente, tenga en cuenta que cuando hace export default , cualquier archivo que importe esa exportación predeterminada puede darle el nombre que desee a la variable local, al igual que la definición de una función puede nombrar un parámetro de forma diferente a cualquier nombre de variable que se haya utilizado en el sitio de la llamada. Ejemplos:

function someFunction(a, fred, randomVariableName) {}

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

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

Tenga en cuenta que los nombres de las variables que defino fuera de la función no tienen que tener ninguna correspondencia con los nombres de los parámetros dentro de la función.

Del mismo modo, al exportar:

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

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

Todos 3 comentarios

Yo diría que no. Si lo piensas bien, Redux solo tiene una función reductora. El hecho de que este ejemplo use combineReducers para crear esa función es un detalle de implementación. En lo que respecta a app.js , no sabe ni le importa qué está pasando dentro de esa función, cómo la creamos o qué está haciendo.

Además, tenga en cuenta que cuando reducers/index.js hace export default combineReducers({}) , en realidad no está _creando_ una cosa llamada "combineReducers". Dice "tome el resultado de esta llamada a la función, sea lo que sea, y conviértalo en la exportación predeterminada". De hecho, técnicamente, esa salida ni siquiera tiene un nombre de variable real asociado.

Finalmente, tenga en cuenta que cuando hace export default , cualquier archivo que importe esa exportación predeterminada puede darle el nombre que desee a la variable local, al igual que la definición de una función puede nombrar un parámetro de forma diferente a cualquier nombre de variable que se haya utilizado en el sitio de la llamada. Ejemplos:

function someFunction(a, fred, randomVariableName) {}

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

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

Tenga en cuenta que los nombres de las variables que defino fuera de la función no tienen que tener ninguna correspondencia con los nombres de los parámetros dentro de la función.

Del mismo modo, al exportar:

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

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

@markerikson Gracias por estas excelentes respuestas.

Muchas gracias @markerikson.

Estoy aprendiendo a utilizar Redux con JQuery, menos el conocimiento de React. Su respuesta ahora me ayuda a comprender mejor los ejemplos con el código React.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

timdorr picture timdorr  ·  3Comentarios

elado picture elado  ·  3Comentarios

wmertens picture wmertens  ·  4Comentarios

benoneal picture benoneal  ·  3Comentarios

CellOcean picture CellOcean  ·  3Comentarios