【发布时间】:2017-05-03 18:26:39
【问题描述】:
我正在尝试使用 Redux 架构制作一个演示 Android 项目,但我无法集中精力显示 Flash 消息,例如作为对成功/失败异步操作的反应。
如果它是一个长期存在的视图,它会通知用户结果,我将发送另一个动作,用特定的标志改变状态并显示视图。但是,如果我想为它使用 Toast 或 SnackBar,我没有办法取消标志,它只会在另一个状态更改后再次显示消息。
我是 Redux 的新手,但我读到 reducer必须 是纯函数,如果我正确理解纯函数的概念,显示 flash 消息是一个侧面-不允许的效果。所以我不能调度一个会被简化为只调用而不改变状态的动作。
所以我能看到的唯一选择是我处理 Redux 流程之外的所有异步操作,调度操作以响应这些事件,并在事件处理程序中显示闪存消息。但在我看来,每一次 UI 变化也是一个状态变化,而不是在 Store 中反映它是问题。因此,这样做我感觉违反了 Redux 模式,并从架构本身中获取了很多,因为它会降低其测试能力。
有出路吗?
【问题讨论】:
标签: java android architecture redux