我在我的应用程序中使用的很多表单都是动态生成的,因此在插件缩减器中我不知道表单的名称,但是想要使用reducer插件的好处。
在下面的情况下它工作正常,如果我知道我的表单被称为foo但在我的应用程序中我有多个动态命名的表单,如CalcForm1,CalcForm2 .... CalcFormN等,这些都需要“CALCULATE”的功能action.type
为什么我可以将它用于动态命名的表单。
非常感谢
export const formPlugin = {
foo: (state = {}, action) => { // <----- 'foo' is name of form given to reduxForm()
switch (action.type) {
case "CALCULATE":
return {
...state,
values: doCalculate(action.payload.expressions, state.values)
};
default:
return state;
}
}
};
答案 0 :(得分:0)
你可以编写wrap函数并使用action.meta.form
类似
const formHack = (state, action) => {
return (action.meta && action.meta.form) ?
formReducer.plugin({
[action.meta.form]: {...}
})(state, action) : formReducer(state, action)
}