dva-plugin-cerprocessor
是dva
的一个插件,用来处理统一的请求effect
和reducer
。当前插件只能用于使用REST API
的请求接口使用;
在dva
的入口文件中,使用
// 引入dva-plugin-cerprocessor
import {createCerprocessor, cerprocessorModel} from 'dva-plugin-cerprocessor';
const app = dva();
// 使用插件
app.use(createCerprocessor({effects: true}));
...
app.model(cerprocessorModel);
在dva
的model
中,这样使用:
import ...
// 引入定义好的 dispatch_type
import { DISPATCH_TYPE } from 'dva-plugin-cerprocessor';
// 导入你需要的异步网络请求
import { YOUR_ASYNC_REQUEST } from 'YOUR_ASYNC_REQUEST_FILE';
export default {
namespace: 'app',
effects: {
* sampleEffect({payload}, {put}) {
yield put({
type: DISPATCH_TYPE,
payload,
callFunction: YOUR_ASYNC_REQUEST, // 需要请求的异步网络请求
namespace: 'app', // 当前的namespace名称
config: {
data: 'data',
code: 200,
successCallback: (data) => {
// YOUR CALLBACK FUNCTION
// 请求成功的回掉函数,可以处理一些通知和跳转
},
failCallback: (data) => {
// YOUR CALLBACK FUNCTION
// 请求失败的回调函数,可以处理一些通知或跳转
},
key: '' // STATE KEY WHAT YOU WANT NAMED
}
})
}
},
reducers: {
...
}
}