为了账号安全,请及时绑定邮箱和手机立即绑定

关于 dva 2 的一个使用的问题(effects 调用)

关于 dva 2 的一个使用的问题(effects 调用)

临摹微笑 2019-03-14 14:11:11
我想问一个有关 dva2 的一个问题:这里以官方提供的user-dashboard的代码为例( https://github.com/dvajs/dva/... )其effects:    *create({ payload: values }, { call, put }) {      yield call(usersService.create, values);      yield put({ type: 'reload' });    },    *reload(action, { put, select }) {      console.log('The reload is called...')      const page = yield select(state => state.users.page);      yield put({ type: 'fetch', payload: { page } });    },这里 create 函数会触发一个 { type: 'reload' } 这样的 action,经过尝试会触发下面的 reload 同名函数但这个是如何导致 下面的 reload 函数执行的呢?看到源码使用的 put 函数:function put(action) {    const { type } = action;    assertAction(type, 'sagaEffects.put');    return sagaEffects.put({ ...action, type: prefixType(type, model) });}应该主要也是 redux-saga 提供的,根据我的理解这里派发的 action 应该和其他的 effects 没有直接的调用关系(虽然dva增加了middleware使其返回Promise),比较困惑下面的 reload 是在哪里进行触发的?这个处理流程是如何的?希望了解的同学能够指点一二,非常感谢
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

想了解更多,请学习react-redux


查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 2188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信