我昨天刚开始使用 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 不是一个好习惯时,我环顾四周并在文档中看到在 onStart 中存在用于查询的 getState 与 thunk 不同,您可以访问它从它的第二个参数。
有人对此有 onStart 实现吗?或者进口商店是否可以接受?