账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于Rematch中effects获取最新state的问题
    61
    0

    如下代码的effects中,两次输出的rootState值是一样的,在常规的redux中,我们可以使用getState()来获取最新的state,但是rematch的effects参数中好像拿不到getState,只能将init导出的store引入进来,才能获取getState,但是感觉会很奇怪,在自己内部引入自己导出的store,请问有其他更自然的方式访问getState吗?

    export default {
      state: {
        count: 0
      },
      reducers: {
        increment: (state, payload) => {
          return {
            ...state,
            count: state.count + 1
          };
        }
      },
      effects: {
        async asyncIncrement(payload, rootState) {
          console.log(rootState);
          await new Promise(resolve => {
            setTimeout(resolve, 1000);
          });
          this.increment();
          console.log(rootState);
        }
      }
    };

    引入自己导出的store

    import store from "../store";
    
    effects: {
      async asyncIncrement(payload, rootState) {
          console.log(store.getState());
          await new Promise(resolve => {
            setTimeout(resolve, 1000);
          });
          this.increment();
          console.log(store.getState());
      }
    }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部