Skip to content

0722

工作

onChange 的坑!!

  • AntD 中 Tab 组件使用问题:遇到一个奇怪的 bug:删除 某个 tab 的时候,对应的 activeKey 需要手动改变到当前 tabList 的最后一个 tab 上,但是不管是使用 useState 还是使用 model 层,都会报错,获取到的 activeKey 是错的。
  • 一开始以为是 useState 的问题,打 log 发现,删除操作的时候 model 改变了 2 次,第一次是改变是改变 tabList 和 activeKey,删除操作和改变当前的 activeKey,传的数据正确。第二次改变的时候,activeKey 是旧的,又把 activeKey 改变了回来。但是旧的 activeKey 被删除了找不到了,自然就报错了。
  • 最后,发现真相是在 onChange 上:原本以为 onChange 事件只会在鼠标点击切换 tab 的时候会触发。没想到只要 tab 切换了,不论 任何方式,都会触发。
  • 所以,使用的时候,尽量使用 onClick 事件避免不必要的问题。

dvajs 在 effects 中获取 state:

通常,如果是同步操作的 reducer ,获取 state 的方式为:

js
reducers: {
    updateState(state, { payload }) {
      return {
        ...state,
        ...payload,
      };
    },
  },

但是,如果在 effects 呢?需要使用 select 获取

js

effects: {
  *updateMasterInfo({ payload }, { call, put, select }) {
    const masterInfo = yield select((s: OptionsConfigState) => s.masterInfo);
  }
}

reducers: {
    updateState(state, { payload }) {
      return {
        ...state,
        ...payload,
      };
    },
  },

相关资料:

任务

好文推荐

好用的工具

TODOS

Released under the MIT License.