createSlice - extraReducers 访问切片本身

createSlice - extraReducers access to slice itself

我注意到,在 CreateSlice -> extraReducers 中,当您使用构建器添加 Case 时,您可以在 addCase 方法中访问切片本身,但在其他任何地方都无法访问!

const slice = createSlice({
    name: 'sliceName',
    initialState,
    reducers: {...},
    extraReducers: builder => {
        console.log( '1: slice', slice ); // undefined

        builder.addCase( someAsyncThunk.pending, ( state, action ) => {
            console.log( '2: slice', slice ); // full access to slice const - HOW??
        });
    }
});

console.output:

1: slice undefined
2: slice {name: "sliceName", actions: {…}, caseReducers: {…}, reducer: ƒ}

这怎么可能?如何通过名称访问 slice 但只能从传递给 addCase 的 reducer 中访问?

提前致谢。

虽然 extraReducers 构建器函数在 创建切片时执行 (此时切片尚不存在),但 case reducer 本身是当切片已经创建了很长时间时执行。这样他们就可以访问切片了。