我正在构建一个 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
问题是我不知道如何使用它来初始化状态,因为这种初始化不是动作的一部分。