我是个新手。我不确定,使用下面的模式是错误的/愚蠢的吗?
import { createAction, handleActions } from "redux-actions";
const CHANGE_STATE = "appState/CHANGE_STATE";
export const changeState = createAction(CHANGE_STATE, (key, val) => ({ [key]: val }));
const initialState = {
maxBodySize: 1920,
isMaxBody: true,
isMobile: false
};
export default handleActions(
{
[CHANGE_STATE]: (state, { payload: changedState }) => {
const newState = {
...state,
...changedState
};
return newState;
}
},
initialState
);每个状态只能编辑一个actionCreator。如下所示:
// Can editable every state with 'changeState' action.
appState.changeState("isMaxBody", true);
appState.changeState("isMobile", true);
appState.changeState("maxBodySize", 960);我可以继续使用这个方便的模式吗?
如果这个式样不好,请给我一些指示。
发布于 2018-07-11 09:44:57
我可以继续使用这个方便的模式吗?
我不明白你为什么“不能”。从严格意义上讲,这似乎是完全有效的。
至于这是不是一个好主意,嗯,这是一个开放的意见,但我不建议使用这个模式。这里有几个原因:
这些是我的观点,来自我的经验。如果该模式对您和您正在尝试实现的目标工作得很好,您可能会发现它很好。
另外,如果你要使用这样的模式,我不明白你为什么不直接使用appState.changeState({isMaxBody: true});而不是appState.changeState("isMaxBody", true);。它看起来更干净了,至少更接近于更好的打字。
https://stackoverflow.com/questions/51275846
复制相似问题