如何在dvajs的action中跳转页面?

新手上路,请多包涵

之前一直用的是hashHistory,但以后升级react-router v4之后hashHistory被移除了,我知道可以用 yield put(routerRedux.push('xxx')),不过我的场景是在effects里面的回调跳转,通过这个issue,我知道了这种写法可能不好,但我也不知道该怎么弄,场景如下:

  1. 页面初始化发出一个验证请求
  2. 得到请求结果
  3. 如果验证不通过,弹出一个提示框
  4. 点击确认,页面跳转

伪代码:

effects: {
    *init({}, {call, put}) {
        const result = yield call('xxx');
        if (!result) {
            Modal.confirm({
                title: '是否跳转?',
                onOk() {
                    // 这里做跳转
                }
            });
    }
}

onOk里面不能用routerRedux跳转,这也不是从组件内用dispatch过来的方法可以把回调传进来,这种情况该怎么处理呢?

阅读 4.1k
1 个回答

把这段代码

Modal.confirm({
                title: '是否跳转?',
                onOk() {
                    // 这里做跳转
                }
            });

封装到Promise中,
然后通过call来调用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题