Ras*_*mon 7 typescript redux-toolkit
我已经在 redux-toolkit 中成功实现了乐观更新。但我无法正确输入。我的代码类似于 redux-toolkit 的示例。
const postsApiSlice = api.injectEndpoints({
endpoints: (builder) => ({
getPost: builder.query<Post, number>({
query: (id) => ROUTES.POST(id),
providesTags: (result, error, id) => {
return [{ type: POST_TAG, id }]
},
}),
updatePostWithOptimism: builder.mutation<void, Pick<Post, 'id'> & Partial<Post>>({
query: ({ id, ...patch }) => ({
url: ROUTES.POST(id),
method: 'PATCH',
body: patch,
}),
async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {
// ERROR at 'getPost': Argument of type 'string' is not assignable to parameter of type 'never'.ts(2345)
const manualGetPostUpdate = dispatch(api.util.updateQueryData('getPost', id, (draft) => {
Object.assign(draft, patch)
}))
try {
await queryFulfilled
} catch {
manualGetPostUpdate.undo()
}
},
}),
}),
})
Run Code Online (Sandbox Code Playgroud)
phr*_*hry 18
的类型api不知道端点getPost。使用注入的 api ( postsApiSlice.util.updateQueryData) 代替。
另外,旁注:您的 api 命名有点表明(我可能是错的)您正在将“注入”api 添加到调用中,configureStore因为它是自己的切片。您不需要这样做 - 只需添加api就configureStore足够了。
| 归档时间: |
|
| 查看次数: |
2047 次 |
| 最近记录: |