Redux: “combineReducers”的 API 文档中解释的示例中的代码错误?

创建于 2016-04-14  ·  3评论  ·  资料来源: reduxjs/redux

在作为“combineReducers”API 文档的一部分描述的示例中,在创建商店时,将“reducer”作为参数传递给文件“ app.js ”( let store = createStore(reducer) )中的 createStore 。

但是在“ reducers/index.js ”中,函数名是“combineReducers”而不是“reducer”( export default combineReducers({..}) )。

那么在创建商店时传递的参数不应该是“combineReducers”(例如: let store = createStore(combineReducers ))吗??

最有用的评论

我会说不。 仔细想想,Redux 只有一个reducer 功能。 本示例使用combineReducers来创建该函数这一事实是一个实现细节。 就app.js而言,它不知道也不关心该函数内部发生了什么、我们如何创建它或它在做什么。

另外,请注意,当reducers/index.js执行export default combineReducers({}) ,它实际上并不是_创建_一个名为“combineReducers”的东西。 它的意思是“获取此函数调用的结果,无论它是什么,并将其设为默认导出。” 事实上,从技术上讲,该输出甚至没有任何与之关联的真实变量名称。

最后,请注意,当您执行export default ,默认导出的任何文件导入都可以为局部变量提供它想要的任何名称,就像函数定义可以命名参数的方式与使用的任何变量名称不同呼叫站点。 例子:

function someFunction(a, fred, randomVariableName) {}

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

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

注意我在函数外定义的变量名如何与函数内的参数名没有任何对应关系。

同样,导出时:

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

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

所有3条评论

我会说不。 仔细想想,Redux 只有一个reducer 功能。 本示例使用combineReducers来创建该函数这一事实是一个实现细节。 就app.js而言,它不知道也不关心该函数内部发生了什么、我们如何创建它或它在做什么。

另外,请注意,当reducers/index.js执行export default combineReducers({}) ,它实际上并不是_创建_一个名为“combineReducers”的东西。 它的意思是“获取此函数调用的结果,无论它是什么,并将其设为默认导出。” 事实上,从技术上讲,该输出甚至没有任何与之关联的真实变量名称。

最后,请注意,当您执行export default ,默认导出的任何文件导入都可以为局部变量提供它想要的任何名称,就像函数定义可以命名参数的方式与使用的任何变量名称不同呼叫站点。 例子:

function someFunction(a, fred, randomVariableName) {}

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

someFunction(firstVariable, theMeaningOfLife, aTotallyUselessName);

注意我在函数外定义的变量名如何与函数内的参数名没有任何对应关系。

同样,导出时:

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

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

@markerikson感谢您提供这些出色的答案。

非常感谢@markerikson。

我正在学习 Redux 以与 JQuery 一起使用,减去 React 的知识。 您的回答现在可以帮助我更好地理解 React 代码示例。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jbri7357 picture jbri7357  ·  3评论

cloudfroster picture cloudfroster  ·  3评论

ilearnio picture ilearnio  ·  3评论

caojinli picture caojinli  ·  3评论

CellOcean picture CellOcean  ·  3评论