我有几个动作,需要与另一个动作一起使用,
更具体我有动作来处理doument和一个动作来保存它,我不会重复调用保存文档,所以我试图在mapDispatchToProps
和thunk
上创建自己的包装器。
我需要将每个操作传递给执行thunk
操作的方法 -
来自
function changeAction() {
return: {
type: types.CHANGE
}
}
到
function change() {
return(dispatch, getState) => {
dispatch(changeAction())
saveDocument(getState());
}
}
我尝试创建将动作映射到thunk的方法
export function mapUpdatePresentationsToProps(actions) {
const mappedActions = {};
Object.keys(actions).map(action => {
mappedActions[action] = function() {
return (dispatch, getState) => {
dispatch(action)
dispatch(updatePresentation(getState()))
}
}
})
return mappedActions;
}
我总是得到一个错误'动作必须是普通的对象。使用自定义中间件进行异步操作。难道我做错了什么?我不知道如何调试它们。将不胜感激任何帮助。
答案 0 :(得分:1)
我想你需要改变:
dispatch(action)
类似于:
dispatch(actions[action]())
现在看来你试图发送一个字符串