ios - 何时、为何以及如何在 redux 中使用 Action Creators?

标签 ios swift redux

我正在使用 redux 的 ReSwift 实现编写一个应用程序。我想知道,什么时候使用 Action 创建器,为什么?

看完tutorial ,我就像创作者一样,只是在检查内部状态后才创建 Action 。例如,我有一个按钮,在用户按下它后,如果我处于状态 A,我想启动一些流程。因此,我必须编写一个 Action 创建器,它将检查当前状态,然后返回正确的 Action ,或者不返回 Action 根本。然后从同一个地方发送这个 Action 。

我说的对吗?我真的很感激任何例子。

第二个问题 - 我必须在哪里实现它?

最佳答案

我在我的博文中介绍了这个主题 Idiomatic Redux: Why Use Action Creators? .重述要点:

  1. 基本抽象:与其在每个需要创建相同类型操作的组件中编写操作类型字符串,不如将创建该操作的逻辑放在一个地方。
  2. 文档:函数的参数可作为执行操作所需数据的指南。
  3. 简洁明快:可能有一些更大的逻辑用于准备操作对象,而不是立即返回它。
  4. 封装和一致性:一致地使用 Action 创建者意味着组件不必知道创建和分派(dispatch) Action 的任何细节,也不必知道它是否是一个简单的“返回 Action 对象”函数或具有大量异步调用的复杂 thunk 函数。它只是调用 this.props.someBoundActionCreator(arg1, arg2),让 Action 创建者担心如何处理事情。
  5. 可测试性和灵 active :如果组件只调用作为 prop 传入的函数而不是显式引用 dispatch,那么为传入模拟版本的组件编写测试就变得很容易代替功能。它还允许在另一种情况下重用该组件,甚至可以使用 Redux 以外的其他东西。

关于ios - 何时、为何以及如何在 redux 中使用 Action Creators?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43831494/

相关文章:

arrays - 不同类型的 RxSwift 变量数组

SwiftUI TupleView 和泛型,如何递归解析某些 View 和 Group 的元组

ios - Objective-C 项目中的 Swift CocoaPods 库

javascript - 使用 CellMeasurer react 虚拟表无法正确计算高度

iOS UIScrollView动画后动画

javascript - CSS/JS 没有在 IOS 上加载,似乎没有原因,无法复制问题

javascript - redux-persist - 何时持久化 reducer ?

reactjs - Next.js 和 redux。服务器端填充store不生效

objective-c - UILabel 使用剪辑渲染部分字符

ios - NSURLSession下载任务使用默认的 session 配置在调试中增加了内存