遇到一个错误,就是点击按钮后,触发props.dispatch()请求后,这个请求 respon 404的异常,然后再点击按钮,就不再发出props.dispatch(),我这里的用的是dva+axios,附上类似的源码片段和修改后的片段
//models.company
import { Company } from '@/services/company';
const company = {
namespace: 'company',
state: {
company_data: [],
},
},
effects: {
*CompanyEffects({ payload }, { call, put }) {
let res = yield call(Company, payload.data);
yield put({
type: 'CompanyReducer',
payload: res,
});
},
},
reducers: {
CompanyReducer(state, { payload }) {
if (payload.status === 200) {
return {
...state,
company_data: payload.data,};
}
},
},
};
export default company;
修改后
//models.company
import { Company, AllowedCompany } from '@/services/company';
const company = {
namespace: 'company',
state: {
company_data: [],
},
},
effects: {
*CompanyEffects({ payload }, { call, put }) {
try{
let res = yield call(Company, payload.data);
yield put({
type: 'CompanyReducer',
payload: res,
});
}catch(err){console.log(err.message)} ;
},
},
reducers: {
CompanyReducer(state, { payload }) {
if (payload.status === 200) {
return {
...state,
company_data: payload.data,};
}
},
},
};
export default company;
没错,只要在effects内加上try catch就可以了!
新手小白,如果有帮助到你,能点个赞嘛!!谢谢!!!