【发布时间】:2021-08-23 14:44:45
【问题描述】:
我昨天刚开始使用 redux,在阅读了不同的库后,我决定使用 RTK 中的切片路由。
对于我的异步,我决定使用 RTK 查询,而不是使用 createAsyncThunk,但我对从另一个切片访问状态的正确方法有疑问。
slice1 包含一些用户数据,例如:
export const initialState: IUserState = {
name: 'example',
id: null,
};
在我的 slice2 中,我有一个想要执行类似 getSomethingByUserId(id) 的函数和我当前的实现:
interface IApiResponse {
success: true;
result: IGotSomethingData[];
}
const getsomethingSlice: any = createApi({
reducerPath: 'api',
baseQuery: fetchBaseQuery({
baseUrl: 'https://someapibase',
}),
endpoints(builder) {
return {
fetchAccountAssetsById: builder.query<IApiResponse, null>({
query() {
console.log('store can be called here', store.getState().user.id);
return `/apipath?id=${store.getState().user.id}`;
},
}),
};
},
});
export default getsomethingSlice;
export const { useFetchAccountAssetsByIdQuery } = getsomethingSlice;
当我在某处读到 markerikson 提到导入商店而不是在 thunk 中使用 getState 不是一个好习惯时,我环顾四周并在 documentations 中看到,与 thunk 不同,onStart 中存在用于查询的 getState您可以从它的第二个参数访问它。
有人对此有 onStart 实现吗?或者导入商店是否可以接受?
【问题讨论】:
标签: reactjs redux redux-thunk redux-toolkit rtk-query