获得行动结果的最佳方式是啥?

Posted

技术标签:

【中文标题】获得行动结果的最佳方式是啥?【英文标题】:What is the best way to get an action result?获得行动结果的最佳方式是什么? 【发布时间】:2019-07-15 17:42:19 【问题描述】:

我很好奇获取操作结果是否是一种有效的方法,如果是,那么如何做到这一点?

例如,假设我有一个带有用于创建实体的表单的页面,在成功创建实体后,我想将用户重定向到实体的详细信息视图,否则(失败时)通过错误消息更新表单。我想在不混淆应用程序层的情况下执行此操作(例如,在成功后不以史诗/效果重定向用户)。

我想到了一些解决这个问题的方法:

    (可观察模式)分派一个“触发”动作(entity_add),然后在我的史诗/效果中的某处分派一个成功(entity_add_success)或失败(entity_add_failure)动作,等待失败或成功操作和执行操作 - 这种方法有一个明显的缺点:可能同时创建其他实体,在这种情况下如何区分实体的失败/成功操作?

    (回调模式)派发一个带有额外回调参数的触发器动作,当动作结果确定时应该调用该参数,这种方法也有一个缺点(虽然没有前一种那么大):创建回调的可能性地狱。

    (服务模式)在这种情况下放弃使用flux,直接使用服务,设计缺点:混合应用层

我很高兴听到任何想法。

【问题讨论】:

【参考方案1】:

我多次成功地使用了第二个选项(将回调附加到启动操作)。在我看来,这是最好的权衡。我没有看到深度嵌套回调(“回调地狱”)的风险,因为通常我只需要触发一个操作,然后执行一些简单的操作,例如导航到另一个页面。

【讨论】:

所以从那时起我一直在使用第二个选项,我并不后悔,但现在我认为它可能有一些缺点,这是因为 function 类型不是原始的,这意味着您不能在商店之间“传输”您的操作(例如,当您想在工作人员中拥有商店时),实际上它与 redux-thunk 具有相同的缺点,所以在这种情况下,第一个选项应该是您的选择,但您应该为您的操作分配某种 id 以及它的类型以区分它的所有较小部分

以上是关于获得行动结果的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

从同一页面获得不同社交共享卡的最佳方式是啥?

action是啥意思

在“回流”中,行动的目的是啥?

赢家总是尽可能迅速地采取行动,尽快地放手去做。他们还知道,行动的最佳时刻就是现在

在职场上成功与否取决于行动力吗?社科院与杜兰能源管理硕士告诉你行动力真的很重要

博鑫是啥意思