美文网首页
extraReducers和onEffect

extraReducers和onEffect

作者: 林ze宏 | 来源:发表于2018-11-10 23:59 被阅读0次

    extraReducers

    说明
    • 指定额外的 reducer,做为全局性的reducers。
    • 相当于一个钩子,每次触发dispatch,都会调用该方法,重新组合reducers。
    • 这里可以参考 dva-loading 的源码写法。
    实例 参考dva-loading源码写法 结果
    • 如果要改变extraReducers中对应namespace中的值,因为是reducers,所以,通过yield put 方法就可以了(或者页面发送一个dispatch,都是一样的)。
      如:监听到case对应的值,则会改变extraReducers里面reducers的值。
    • 每一次触发dispatch,都会调用extraReducers这个方法,重新组合reducers。
    yield put ({ type: 'SHOW' });
    
    

    onEffect

    说明
    • 封装 effect 执行。
    • 相当于一个钩子,每次触发异步请求时(也就是触发effects),都会调用该方法,这里可以额外处理,我们想要的动作。
    • 这里可以参考 dva-loading 的源码写法。
    实例 参考dva-loading源码写法

    触发一个异步动作,redux调试工具输出oneffect的执行过程

    结果 打印输出参数

    扩展

    有些redux库,需要通过 combineReducers 重新组合reducers,而在dva中,是没有combineReducers方法的,所以,如果需要在dva中使用,则是,通过extraReducers方法重新组合reducers。
    如:react-intl-redux 库。

    示例

    参考

    https://dvajs.com/api/#app-use-hooks
    https://github.com/dvajs/dva/blob/master/packages/dva-loading/src/index.js

    相关文章

      网友评论

          本文标题:extraReducers和onEffect

          本文链接:https://www.haomeiwen.com/subject/qrkzxqtx.html