reducer 可以这么写吗?

来源:7-7 使用 combineReducers 完成对数据的拆分管理

自酌一杯酒

2022-09-24

header 页面部分代码

const mapDispatchToProps = (dispatch) => {
  return {
    handleFocus() {
      const action = {
        type: 'searchFocused',
        data: true
      }
      dispatch(action)
    },

    handleBlur() {
      const action = {
        type: 'searchFocused',
        data: false
      }
      dispatch(action)
    }
  }
}

reducer.js 里面的代码

const defaultState = {
  searchFocused: false
};

export default (state = defaultState, action) => {
  if (state[action.type] !== undefined) {
    const newState = {};
    newState[action.type] = action.data;
    return {
      ...state,
      ...newState
    };
  }
  return state;
}

就是 type 就直接是要改变的属性名,这样就不用加那么多判断了吧?

写回答

1回答

Dell

2022-09-25

也可以,但你后面可以看看,这么写未必灵活

0
0

React零基础入门到实战,完成企业级项目简书网站开发

主流新技术 React-redux,React-router4,贯穿基础语法

5275 学习 · 2496 问题

查看课程