import { createSlice } from "@reduxjs/toolkit";

const counterSlice = createSlice({
  name: "counter", // store的名字
  initialState: {
    counter: 100,
  },
  reducers: {
    addNumber(state, action) {
      // 这里可以拿到state直接赋值，在最开始的写法中我们需要通过{ ...state, ...newObj }返回一个新的对象
      state.counter = state.counter + action.payload;
    },
    subNumber(state, { payload }) {
      state.counter = state.counter - payload;
    },
  },
});
// 创建好store之后，我们仍需要将Slice对象的actions和reducer导出
// 这里的addNumber和subNumber其实就是一个actionCreator()，调用即可获得一个action对象，
// 例如 addNumber(12)的返回值是{ type: 'addNumber', payload: 12}这样一个action对象
export const { addNumber, subNumber } = counterSlice.actions;
export default counterSlice.reducer;
