Żyw*_*ywy 10 typescript immer.js redux-toolkit
我使用@reduxjs/toolkit并且我的状态包含:allSlides: ISlide[];
当我尝试改变任何事情时,allSlides比如前。
setAllSlides(state, action: PayloadAction<ISlide[]>) {
state.allSlides = action.payload;
},
storeNewSlide(state, action: PayloadAction<ISlide>) {
state.allSlides.push(action.payload);
},
Run Code Online (Sandbox Code Playgroud)
我收到 TS 错误
Type 'ISlide' is not assignable to type 'WritableDraft<ISlide>'
Run Code Online (Sandbox Code Playgroud)
我对更改原始值数组或仅对象中的一个属性没有问题,但我不知道如何正确更改整个数组或数组中的特定对象。
您必须在操作中添加类型
IE:
export const storeNewSlide = createAsyncThunk(
"slides/storeNewSlide",
async (slide: ISlide) => {
return {
slide,
};
}
);
Run Code Online (Sandbox Code Playgroud)
然后在你的allSlides:
storeNewSlide(state, action: PayloadAction<ISlide>) {
state.allSlides.push(action.payload.slide);
},
Run Code Online (Sandbox Code Playgroud)
幻灯片数组也是如此
| 归档时间: |
|
| 查看次数: |
12218 次 |
| 最近记录: |