我们将执行以下操作来管理我们的 redux store。
- 通过 async fetch api 从服务器获取费用,并在 Redux store 中设置。
- 通过异步 fetch 编程向服务器添加新费用,并在 Redux store 中设置添加新费用。
- 通过 async fetch api 从服务器中删除现有费用并更新 Redux store。
让我们创建 action types、action creator、actions 和 reducer 来管理 Redux state。
在 src folder 下创建文件夹 actions。
接下来,创建一个文件,types.js创建操作类型。
接下来,创建一个文件,index.js actions folder 下创建操作创建者。
在这里,我们为 fetch api 的每个可能结果(成功、失败和错误)创建了一个操作创建器。由于我们将使用 3 个 Web API 调用,并且每个调用将有三种可能的结果,因此我们使用 9 个 action creator。
接下来,创建一个文件,expenseActions.js actions folder 下,并创建三个函数来获取、添加和删除费用以及分派状态更改。
这里
- 使用异步获取 api 进行 Web API 调用。
- 使用 dispatch 函数在成功、失败和错误事件期间调度适当的 action。
创建一个文件夹,在 src 文件夹下创建一个 reducers 并创建一个文件,index.js reducers 文件夹下创建 Redux Reducers。
在这里,我们更新了每种 action 类型的 redux store state。
接下来,在 src 文件夹下打开index.js文件并包含 Provider 组件,以便所有组件都可以连接并使用 redux store。
这里
- 导入 createStore 和 applyMiddleware
- 从 redux-thunk 库导入 thunk(用于异步获取 api)
- 从 redux 库导入的 Provider
- 通过配置 reducer 和 thunk middleware 使用 createStore 创建 newstore
- 将 Provider 组件作为顶级组件附加到 redux store