Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript reducer-更新完整状态_Javascript_Reactjs_React Hooks_Use Reducer - Fatal编程技术网

Javascript 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", "

我想在reducer中添加一个案例,在这里我想设置完整的状态,而不是任何特定的属性

更新特定属性[
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
是一个合适的对象,它可以从减速器返回,无需创建包装器对象,因为您希望对象保持原样。

谢谢。请你解释一下,为什么会这样,而我的不起作用,给你补充一个解释。