【问题标题】:Getting TypeError when returing store data返回商店数据时出现 TypeError
【发布时间】:2021-09-20 15:14:12
【问题描述】:

我正在尝试将数据从我的表单组件存储到我的商店。但是当我尝试调度动作并将动作有效负载返回到状态时,得到一个错误,

TypeError: state.users is undefined

那个动作减速器是

export const addUserReducer = (state = { users: [] }, action) => {
  switch (action.type) {
    case "ADD_USER_REQUEST":
      return {
        loading: true,
      };
    case "ADD_USER_SUCCESS":
      return {
        ...state,

        users: [...state.users, action.payload],
      };
    default:
      return state;
  }
};

应用程序的 Redux 商店是,

import { combineReducers, createStore, applyMiddleware } from "redux";
import { addUserReducer } from "./Reducers/addUserReducer";
import { composeWithDevTools } from "redux-devtools-extension";
import thunk from "redux-thunk";
const finalReducer = combineReducers({
  addUserReducer: addUserReducer,
});
const composeEnhancers = composeWithDevTools({
  // Specify here name, actionsBlacklist, actionsCreators and other options
});

const usersFromStorage = localStorage.getItem("Users")
  ? JSON.parse(localStorage.getItem("Users"))
  : [];
console.log(usersFromStorage);
const initialState = {
  addUserReducer: {
    users: usersFromStorage,
  },
};

const store = createStore(
  finalReducer,
  initialState,
  composeEnhancers(applyMiddleware(thunk))
);

export default store;

我尝试了很多方法来解决这个问题,但还不知道主要问题在哪里。

【问题讨论】:

    标签: javascript reactjs redux react-redux react-redux-form


    【解决方案1】:

    在您的开关的第一种情况下,您也应该返回状态的另一部分:

    case "ADD_USER_REQUEST":
          return {
            ...state,
            loading: true,
          };
    

    【讨论】:

    • 非常感谢您的帮助。现在,它正在工作。
    猜你喜欢
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    相关资源
    最近更新 更多