异步代码
- import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
- import { getBanner } from '../http/request';
- import store from '@/store';
- export const fetchBanner = createAsyncThunk(
- 'recommend/banners',
- async (args, thunkAPI) => {
- const response = await getBanner();
- thunkAPI.dispatch(getBannerAction(response.data));
- },
- );
- const recommendStore = createSlice({
- name: 'recommend',
- initialState: {
- banners: [],
- },
- reducers: {
- getBannerAction(state, { payload }) {
- console.log('得到', payload);
- state.banners = payload.banners;
- },
- },
- });
- export const { getBannerAction } = recommendStore.actions;
- export default recommendStore.reducer;
复制代码 外面调用的是
但是ts会报错
类型“AsyncThunkAction<any, void, AsyncThunkConfig>”的参数不能赋给类型“UnknownAction”的参数。ts
这时间来到总仓库 把 dispatch改装一下
- // dispatch
- export type AppDispatch = typeof store.dispatch;
- export const useAppDispatch = () => useDispatch<AppDispatch>();
复制代码 或者
- type AppDispatch = typeof store.dispatch;
- export const useAppDispatch: () => AppDispatch = useDispatch;
复制代码 外面就可以用了,ts不会报错了
- useEffect(() => {
- dispatch(fetchBanner());
- }, []);
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |