DataListRedux.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. //下拉刷新,获取更多数据处理
  2. export const initDataState = {
  3. page: 0,
  4. size: 20,
  5. finish: false,
  6. loading: false,
  7. refreshing: false,
  8. dataList: [],
  9. error: "",
  10. };
  11. export function DataListReducer(state, action) {
  12. switch (action.type) {
  13. case "startRefresh":
  14. return {
  15. ...state,
  16. page: 0,
  17. finish: false,
  18. refreshing: true,
  19. dataList: [],
  20. };
  21. case "refreshSuccess":
  22. return {
  23. ...state,
  24. refreshing: false,
  25. };
  26. case "refreshError":
  27. return {
  28. ...state,
  29. error: action.payload.error,
  30. dataList: [],
  31. refreshing: false,
  32. };
  33. case "startPageMore":
  34. return {
  35. ...state,
  36. loading: true,
  37. };
  38. case "pageMoreSuccess":
  39. return {
  40. ...state,
  41. loading: false,
  42. };
  43. case "pageMoreError":
  44. return {
  45. ...state,
  46. error: action.payload.error,
  47. loading: false,
  48. };
  49. case "setInfo":
  50. return {
  51. ...state,
  52. dataList:
  53. state.page == 0
  54. ? action.payload.list
  55. : state.dataList.concat(action.payload.list),
  56. finish: action.payload.finish,
  57. page: action.payload.finish ? state.page : state.page + 1,
  58. };
  59. case "remove": {
  60. let list = [...state.dataList];
  61. list.splice(action.payload.index, 1);
  62. console.log(list);
  63. return {
  64. ...state,
  65. dataList: list,
  66. };
  67. }
  68. default:
  69. return state;
  70. }
  71. }