如何使用异步请求的响应来初始化Redux状态

我正在构建一个 React-Redux 应用,该应用必须从头开始从api加载列表。到目前为止,我已经能够使它使用硬编码列表来初始化状态:

.

reducers/Catalogs.js

我从阅读中知道,减速器不应进行异步调用或调度操作,因此,我使用 redux-sagas 来管理异步调用。

import { GET_CATALOGS,SHOW_MESSAGE,HIDE_MESSAGE,GET_CATALOGS_SUCCESS } from 'constants/actionTypes'; const INIT_STATE = { loader: false,alertMessage: '',showMessage: false,catalogsList: ['uno','dos'] /// Hard coded initialization that must be from an api }; export default (state=INIT_STATE,action) => { switch (action.type) { case GET_CATALOGS_SUCCESS: { return { ...state,loader: false,catalogsList: action.payload } } case SHOW_MESSAGE: { return { ...state,alertMessage: action.payload,showMessage: true,loader: false } } case HIDE_MESSAGE: { return { ...state,loader: false } } case GET_CATALOGS: { return { ...state } } default: return state; } }

sagas/Catalogs.js

问题是我不知道如何使用它来初始化状态,因为这种初始化不是动作的一部分。

zhuzheqi2096409 回答:如何使用异步请求的响应来初始化Redux状态

基本上,您需要为主要componentDidMount()组件创建App并在其中分发GET_CATALOGS操作,这应该在挂载应用程序(初始化)和更新存储时请求数据。 / p>

本文链接:https://www.f2er.com/3154907.html

大家都在问