什么是 extraReducers 映射对象概念

What is extraReducers map object notion

当阅读 redux 工具包官方文档时,我在 createSlice 部分看到了这个:

const incrementBy = createAction('incrementBy')

createSlice({
  name: 'counter',
  initialState: 0,
  reducers: {},
  extraReducers: {
    [incrementBy]: (state, action) => {. ///what is this
      return state + action.payload
    },
    'some/other/action': (state, action) => {},
  },
})

我不明白为什么这里有 array。为什么我们在这里使用 string 为什么我们在数组中使用它 ( [incrementBy] )?

求助,万分感谢

这不是数组,而是计算属性。这将在 运行 时间

key 添加到对象

let prop = "name";
const obj = {
  [prop]: "Whosebug",
};
console.log(obj);

extraReduce 是一个对象,在代码中 incrementBy 将给出 属性 名称,同时您正在为该 属性 名称分配一个函数。

let prop = "getSum";
const obj = {
  [prop]: (arr) => {
    return arr.reduce((acc, curr) => acc + curr, 0);
  },
};
console.log(obj[prop]([1, 2, 3, 4, 5]));
console.log(obj.getSum([1, 2, 3, 4, 5]));