根据 在组件中dispatch一个action的例子中,如果要在effects中对于param数据和当前的state数据进行再出处理,这里怎么获取state呢?采用select,如下:

  1.  
     
  2.  
    export default {
  3.  
     
  4.  
    namespace: 'example',
  5.  
     
  6.  
    state: {num:1}, //表示当前的example中的state状态,这里可以给初始值,这里num初始为1
  7.  
     
  8.  
     
  9.  
    effects: { //这里是做异步处理的
  10.  
    *addByONe({ param}, { call, put,select }) { //这里使用select
  11.  
     
  12.  
    const num = yield select(state => state.num) //这里就获取到了当前state中的数据num
  13.  
    //方式二: const num = yield select(({num}) =>num)
  14.  
     
  15.  
    //方式三: const num = yield select(_ =>_.num)
  16.  
     
  17.  
    let param1;
  18.  
    param1 = num + param; 这里就可以使用num进行操作了
  19.  
     
  20.  
    yield put({
  21.  
    type: 'save',
  22.  
    num:param1
  23.  
    });
  24.  
    }
  25.  
     
  26.  
     
  27.  
    },
  28.  
     
  29.  
    //用来保存更新state值 上面的put方法调用这里的方法
  30.  
    reducers: {
  31.  
    save(state, action) { //这里的state是当前总的state,这里的action包含了上面传递的参数和type
  32.  
    return { ...state, ...action.num }; //这里用ES6语法来更新当前state中num的值
  33.  
    },
  34.  
    },
  35.  
     
  36.  
    };

最新文章

  1. yii2.0归档安装方法
  2. 二进制求最大公约数&&输出二进制
  3. 爬虫5 html下载器 html_downloader.py
  4. Using sql azure for Elmah
  5. hdu 4759 Poker Shuffle 二进制
  6. C++11右值引用,移动主义
  7. shell常用命令总结
  8. UVALive 4957 Fake scoreboard
  9. IIS给网站地址配置成HTTPS的
  10. 树莓派高级GPIO库,wiringpi2 for python使用笔记(二)高精度计时、延时函数
  11. 使用QT 4.8.6 + Cmake 3.0.0 编译 最新版本OpenCv3.0.0
  12. InnoDB 索引原理
  13. 小甲鱼OD学习第12讲
  14. ssh整合之五struts和spring整合
  15. Luogu P1447 [NOI2010]能量采集
  16. Java heap space cdh 5.11.1
  17. JavaScript: apply 方法 详解(转)——非常好
  18. ubuntu查询某个库的相关情况
  19. 设置同样字体大小,chrome浏览器有时字体偏大的解决办法(转)
  20. 怎样使用CSS设置文字与文字间距距离?

热门文章

  1. 在浏览器中体验 Ubuntu
  2. mac 下 homebrew安装
  3. KRBTabControl
  4. redis学习笔记——RDB、AOF和复制时对过期键的处理
  5. NSData 转 bytes 字节数据
  6. appendChild append insertBefore prepend
  7. 【VBA编程】14.操作工作簿对象
  8. ECMAScript 6 | 新特性
  9. 默认权限umask
  10. 转: 利用RabbitMQ、MySQL实现超大用户级别的消息在/离线收发