javascript - 返回存储数据时出现 TypeError
问题描述
我正在尝试将数据从我的表单组件存储到我的商店。但是当我尝试调度动作并将动作有效负载返回到状态时,得到一个错误,即,
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;
我试图通过使用多种方法来解决这个问题,但还不知道主要问题在哪里。
解决方案
在您的开关的第一种情况下,您还应该返回状态的另一部分:
case "ADD_USER_REQUEST":
return {
...state,
loading: true,
};
推荐阅读
- python - 如何使用 Python 与 z/OS 服务交互以自动化手动流程
- javascript - ArcGIS JS API - 弹出窗口中的条件逻辑
- spring - Netty 不允许管道符号 | 并抛出异常
- .net - IIS 上的 SignalR Core 缺少“连接”标头
- javascript - 通过 CSS3 或 JS 的液体滑块点
- oracle-apex - 具有可编辑视图的交互式网格(INSTEAD OF INSERT OR UPDATE ON)导致 ORA-22816
- c++ - ODR 如何应用于 cpp 文件中声明的类?
- azure - 为什么 Azure 容器实例没有默认的 HTTPS 终结点?
- python-3.x - Python for 循环从 2 个数据集中获取 n 行
- c# - 64 位包装器中的 32 位非托管 dll