Javascript reducer-更新完整状态
我想在reducer中添加一个案例,在这里我想设置完整的状态,而不是任何特定的属性 更新特定属性[Javascript reducer-更新完整状态,javascript,reactjs,react-hooks,use-reducer,Javascript,Reactjs,React Hooks,Use Reducer,我想在reducer中添加一个案例,在这里我想设置完整的状态,而不是任何特定的属性 更新特定属性[SET\u SELECTED\u页面,显示更新消息]]工作正常。但是当我尝试SET_INIT_DATA时,我得到了错误解析错误:意外标记,预期“,”。SET_INIT_DATA的有效负载将具有完整的json 我的状态会像 { "user": "", "selectedPage": "home", "
SET\u SELECTED\u页面,显示更新消息]
]工作正常。但是当我尝试SET_INIT_DATA
时,我得到了错误解析错误:意外标记,预期“,”
。SET_INIT_DATA的有效负载将具有完整的json
我的状态会像
{
"user": "",
"selectedPage": "home",
"message": "Message from admin",
...
}
代码:
const reducer = (state, action) => {
switch (action.type) {
case "SET_SELECTED_PAGE":
return {
...state,
selectedPage: action.payload
};
case "UPDATE_MESSAGE_DISPLAYED":
return {
...state,
messageDisplayed: action.payload
};
case "SET_INIT_DATA":
return {
action.payload // getting error Parsing error: Unexpected token, expected ","
};
default:
throw new Error();
}
};
可能是:
case“SET_INIT_DATA”:
返回动作。有效载荷;
你的不起作用,因为它是一个语法错误。JS对象初始化需要密钥、值对(or)或扩展运算符。您都没有提供,因此这是一个语法错误
因为
action.payload
是一个合适的对象,它可以从减速器返回,无需创建包装器对象,因为您希望对象保持原样。谢谢。请你解释一下,为什么会这样,而我的不起作用,给你补充一个解释。