代码之家  ›  专栏  ›  技术社区  ›  upog

reducer-更新完整状态

  •  1
  • upog  · 技术社区  · 4 年前

    我想在reducer中添加一个case来设置完整的状态,而不是任何特定的属性。

    更新特定属性[ SET_SELECTED_PAGE,UPDATE_MESSAGE_DISPLAYED ]工作正常。但当我试着 SET_INIT_DATA 我搞错了 Parsing error: Unexpected token, expected "," .有效载荷 将具有完整的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();
          }
        };
    
    1 回复  |  直到 4 年前
        1
  •  2
  •   L Lawliet    4 年前

          case "SET_INIT_DATA":
              return action.payload;
    

    你的没用是因为语法错误。JS对象初始化需要键、值对(或 object property short form ),或排列运算符。你没有提供,所以这是一个语法错误。

    因为 action.payload