zoukankan      html  css  js  c++  java
  • dva学习---effects异步中通过select获取当前的state

    根据 在组件中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.  
      };
  • 相关阅读:
    [APIO2017]商旅(分数规划,spfa)
    Codeforces Round #542 div1
    Codeforces Round #556 (Div. 2)
    Codeforces Round #543
    Codeforces Round #534 (Div. 1)
    公式的复习?
    关于概率dp的HINT
    [JSOI2009]密码 [AC自动机]
    bzoj1444[Jsoi2009]有趣的游戏[AC自动机]
    「LibreOJ β Round #4」框架 [bitset]
  • 原文地址:https://www.cnblogs.com/williamjie/p/9601506.html
Copyright © 2011-2022 走看看