在models的effects中直接用setTimeout函数会报错,例如以下错误写法:
effects: {
*update({ payload }, { call, put }) {
const response = yield call(update, payload);
if (response.status == "success") {
message.success('成功!');
setTimeout(()=>{
yield put(routerRedux.push(`/xxx/xxx`));
},2000)
}
}
}
解决方案:就是在这个modal自定义一个方法,并在effects里调用settimeout方法
const delay = (ms) => new Promise((resolve) => {
setTimeout(resolve, ms);
});
export default {
namespace: 'aa',
state: {},
effects: {
*update({ payload }, { call, put }) {
const response = yield call(update, payload);
if (response.status == "success") {
message.success('成功!');
setTimeout(()=>{
yield put(routerRedux.push(`/xxx/xxx`));
},2000)
}
}
},
reducers: {},
};