javascript - Redux-自动 : action chaining vs index reducer

标签 javascript redux chaining redux-middleware

谁能告诉我使用chain有什么区别?关于 reducer 功能并在主要工作中index reducer函数位于 redux-auto

我想保存错误,

A) store/chat/send.js

import actions from 'redux-auto'

//...

 function rejected(chat, payload, error){
  return chat;
} onError.chain = (c, p, error) => actions.logger.save(error)

//...

B) store/logger/index.js

import actions from 'redux-auto'
import save from './save'

export default function (errorsLog = [], action)
{
   if(action.type == actions.chat.send.rejected){
      return save(errorsLog,action.payload)
   }
   return errorsLog
}

它们都有效

我的问题:

  1. 我不知道什么会更好。有什么区别?

  2. 为什么我要使用其中一种而不是另一种?

  3. 另外,我不能在 logger.save(...) 中调用操作 logger.save(...) 拒绝。为什么存在这个功能?

感谢您的帮助:)

最佳答案

A)使用链(OnError)将在源(拒绝的) reducer 完成后触发操作。在您的商店中创建一个新的通话。

B)您正在更改源 reducer 调用中的状态

您的问题:

1,2)使用链接将使您的代码更具可读性,因为下一个函数与源 reducer 并置,但将其放在索引组中,所有操作将发生在存储的该部分。

3) 直接在reducer函数中调用action函数。是一种反模式。这是在已调度操作的中间调度一个操作。 reducer 将对不一致的数据进行操作。

关于javascript - Redux-自动 : action chaining vs index reducer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45106256/

相关文章:

javascript - 使用 Object.assign 和 lodashs _.merge 函数返回新的未突变状态?

C++异步创建对象

javascript - 递归 JavaScript Promise 的正确链接

javascript - 调整 Canvas 大小的后果

javascript - v-on :click ="..." and using onclick ="..." in Vue. js的区别

javascript - 发送 AJAX 请求时手动指定 MIME 类型有什么好处?

javascript - 在 React : Uncaught TypeError: . 中调用函数 .. 不是函数(...)

javascript - 在 Angular 2/TypeScript 中使用 Google API

javascript - 导航 ('/' ) 不导航

sql - 查找单表链中的最后一条记录 (SQL Server)