【发布时间】:2019-03-15 19:34:54
【问题描述】:
Redux 表示处理状态的操作(Reducers)have to be pure。
不过,查看 React-Redux 文档,他们展示了如何将新的 Todo 任务添加到 Todo 列表中,并且该函数会为新的 Todo 任务生成一个新的标识符。这显然不是纯粹的。再次调用相同的函数将不会产生相同的输出。
有例子(来自this page):
// redux/actions.js
import { ADD_TODO } from "./actionTypes";
let nextTodoId = 0;
export const addTodo = content => ({
type: ADD_TODO,
payload: {
id: ++nextTodoId,
content
}
});
// ... other actions
这是否意味着我必须忘记迄今为止学到的一切?
【问题讨论】:
-
那不是reducer,那是action creator。
-
不管这个事实,那是 React-Redux 指南。它教如何将 Redux 与 React 一起使用,而不是如何使用 Redux。即使 Redux 代码存在问题,我也会认为它们过于简单化了。
-
这是我们新的 React-Redux 文档重写的一部分。请注意,React-Redux 文档现在可以在 react-redux.js.org 的已发布站点上找到。此外,根据答案,这是一个动作创建者,而不是减速器。
-
@Leandro,啊!是的。嗯...他们说要小心,因为 Actions 和 Action Creators 是不同的。
-
@markerikson,实际上文档在特定点上是正确的“我们的 addTodo 动作创建器如下所示:” 区分“动作”和“动作”是初学者的问题创造者”。
标签: reactjs redux react-redux