DataListRedux.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. console.log(action.payload.list);
  51. return {
  52. ...state,
  53. dataList:
  54. state.page === 0
  55. ? [...action.payload.list]
  56. : state.dataList.concat([...action.payload.list]),
  57. finish: action.payload.finish,
  58. page: action.payload.finish ? state.page : state.page + 1,
  59. };
  60. case "remove": {
  61. const list = [...state.dataList];
  62. list.splice(action.payload.index, 1);
  63. // console.log(list);
  64. return {
  65. ...state,
  66. dataList: list,
  67. };
  68. }
  69. case "clear":
  70. return {
  71. ...state,
  72. refreshing: true,
  73. dataList: [],
  74. };
  75. default:
  76. return state;
  77. }
  78. }