在mock完数据后,通过请求能得到数据,那么需要把数据存在model中,不管在什么地方通过useDispacth 和 useSelector 可以方便的得到想要的数据,减少网络请求。
`import * as approvedServe from '@/services/supplyDemandApproval/approved';
import { message } from 'antd';
const approvalModel = {
namespace: 'approved',
state: {
reviewList:[],
reviewListTotal:0,
},
effects: {
// 请求数据
*getReviewList({ payload }, { call, put }) {
const response = yield call(
approvedServe.getReviewList,
payload,
);
if (response.status === 20000) { //对请求接口状态判断,失败时提示,成功时再存储数据
yield put({
type: 'saveReviewListData',
payload: response,
});
} else {
message.error(response.msg);
}
},
reducers: {
//将数据存在reduce中
saveReviewListData: (state, data) => {
return (state = {
...state,
reviewList: data.payload.data.records,
reviewListTotal: data.payload.data.total,
});
},
}
}
export default approvalModel;`
首先需要将服务强求导入进来,通过 yield call 请求数据,通过 yield put 将数据放入reducer中,设置的有命名空间需要注意,还有设置的函数名getReviewList是server里的函数名