| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import { queryFakeList } from '../services/api';
- export default {
- namespace: 'list',
- state: {
- list: [],
- loading: false,
- },
- effects: {
- *fetch({ payload }, { call, put }) {
- yield put({
- type: 'changeLoading',
- payload: true,
- });
- const response = yield call(queryFakeList, payload);
- yield put({
- type: 'queryList',
- payload: Array.isArray(response) ? response : [],
- });
- yield put({
- type: 'changeLoading',
- payload: false,
- });
- },
- *appendFetch({ payload }, { call, put }) {
- yield put({
- type: 'changeLoading',
- payload: true,
- });
- const response = yield call(queryFakeList, payload);
- yield put({
- type: 'appendList',
- payload: Array.isArray(response) ? response : [],
- });
- yield put({
- type: 'changeLoading',
- payload: false,
- });
- },
- },
- reducers: {
- queryList(state, action) {
- return {
- ...state,
- list: action.payload,
- };
- },
- appendList(state, action) {
- return {
- ...state,
- list: state.list.concat(action.payload),
- };
- },
- changeLoading(state, action) {
- return {
- ...state,
- loading: action.payload,
- };
- },
- },
- };
|