javascript - React 和 Redux:每个动作的 Redux 状态
问题描述
我有一个组件,其中有三个子组件,它们在加载时呈现数据。在我的 redux reducer 中,我有三个数组和一个 isLoading 对象。一旦检索到数据,它会将 isLoading 状态设置回 false。我担心的是,由于我们知道某些数据比其他数据需要更长的时间来检索,因为我有一个 isLoading 对象,其他三个对象都依赖它,最好为每个数组创建单独的 reducer 文件吗?或者可能是三个不同的加载对象,每个数组都有自己的加载对象名称?
//Redux 动作文件
//Get breakfast list
export const getBreakfastList = () => (dispatch, getState) =>{
dispatch({type: LOADING_DATA});
axios
.get('/api/breakfastList/', setAuthorizationHeader(getState))
.then(res =>{
dispatch({
type:GET_BREAKFAST_LIST,
payload: res.data
})
})
.catch(err =>
dispatch(returnErrors())
);
};
//Get lunch list
export const geLunchList = () => (dispatch, getState) =>{
dispatch({type: LOADING_DATA})
axios
.get('/api/getLunchList/', setAuthorizationHeader(getState))
.then(res =>{
console.log(res.data)
dispatch({
type:GET_LUNCH_LIST,
payload: res.data
})
})
.catch(err =>
dispatch(returnErrors())
);
};
//Get Dinner List
export const getDinnerList = () => (dispatch, getState) =>{
dispatch({type: LOADING_DATA});
axios
.get('/api/getDinnerList/', setAuthorizationHeader(getState))
.then(res =>{
console.log(res.data)
dispatch({
type:GET_DINNER_LIST,
payload: res.data
})
})
.catch(err =>
dispatch(returnErrors())
);
};
//Redux 减速器文件
const initialState = {
breakfastList: [],
lunchList: [],
dinnerList: [],
isLoading: false
};
export default function(state = initialState, action){
switch(action.type){
case LOADING_DATA:
return{
...state,
isLoading: true
};
case GET_BREAKFAST_LIST:
return{
...state,
breakfastList: action.payload,
isLoading: false
};
case GET_LUNCH_LIST:
return{
...state,
lunchList: action.payload,
isLoading: false
};
case GET_DINNER_LIST:
return{
...state,
dinnerList: action.payload,
isLoading: false
};
default:
return state;
}
}
解决方案
推荐阅读
- python - ModuleNotFoundError:没有名为“gtk”的模块
- linq - 动态 Linq 字符串“包含”表达式
- sql - 使用 1 个 SQL 查询连接 3 个表,并找到为每个客户群产生最多收入的产品类别
- python - 使用 Graph、Vertex 和 Edge 数据结构在 Python 中创建地铁站网络
- kotlin - Micronaut 数据 JDBC 嵌套实体
- spring-boot - 谷歌浏览器当我点击电子邮件验证链接新标签加载几秒钟然后关闭为什么?
- r - 计算 R 中两个掷骰子总和的概率
- sql - 根据评估几列中的某些列是否为真来创建计算列?
- python - 在 Python 中查找井字游戏的结果
- sql - sql join 给出累积结果