我最近在看Dan Abramov redux系列,一集让我真的好奇。在这一集中 - Redux: Extracting Action Creators,时间码:00:32~1:32他将动作创建者作为一个单独的函数(就像通常在典型的redux应用程序中看到的那样),因为:
...但是,如果另一个组件想要调度add todo会怎样 行动?它需要以某种方式访问下一个 todo ID
但这实际上是否有意义?在该特定示例中,import
变量(始终递增)可用于jsbin内的所有组件,即使我们不将动作创建者提取到函数中。
即使我们想象它将在一个单独的文件(动作创建者)中,在每个mutate
上,该变量将等于初始值(0),从而打破它唯一性概念。
那么,他的意思是什么?这种方法(将动作创建者作为单独的函数)将如何保证我们对 next todo id变量的访问?
答案 0 :(得分:0)
你专注于错误的方面。这是一个公平的观点,这是存储“当前ID”的一种可怕方式,但这并不是他所展示的重构的目的。
真正的目的是组件应尽可能与其上下文无关。尝试“addTodo”的组件实际上不应该关注“当前最大待办事项ID是什么?”。
相比之下,actionCreator 与此方面有关。它从组件中获取数据,然后负责将其转换为具有实际价值的可调度调用。