谁能告诉我使用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
}
它们都有效
我的问题:
我不知道什么会更好。有什么区别?
为什么我要使用其中一种而不是另一种?
另外,我不能在 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/