Ant Design Pro学习小结

在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: {},
};

猜你喜欢

转载自blog.csdn.net/xlszzck/article/details/82587715