React Redux Toolkit createSyncthunk不给任何回报
我正在使用Redux Toolkit的createAsyncthunk
和axios
用于异步请求。首先,它有效,但是当我使用SCSS进行STH时,Chrome给我typeerror:无法读取未定义的属性(读取'Map')
。我没有改变有关Redux和Thunk的任何内容,但使用Elelector一无所获。另外,界面(起作用)没有给出任何响应。
thunk和slice:
export const getTopBanners = createAsyncThunk(
'home/getTopBanners',
async ()=>{
console.log('hello?');
const response = await axiosGetTopBanner();
console.log('res:'+response);
return response.banners
}
)
export const topBannerSlice = createSlice({
name:'topBanner',
initialState:{
pics:[],
isLoading:false
},
extraReducers:{
[getTopBanners.pending]:(state)=>{
state.isLoading = true;
},
[getTopBanners.fulfilled]:(state,action)=>{
state.pics = action.payload;
state.isLoading = false;
},
[getTopBanners.rejected]:(state)=>{
state.isLoading = false;
}
}
})
组件:
const dispatch = useDispatch();
//gets nothing here
const topBanners = useSelector((state) => state.topBanner.pics);
useEffect(() => {
dispatch(getTopBanners());
}, [dispatch]);
商店:
const store = configureStore({
reducer:{
topBanner:topBannerReducer,
recommendData:recommendDataReducer
}
})
I am using Redux Toolkit's createAsyncThunk
and Axios
for async requests. At first, it works, but when I was doing sth with scss, the chrome gives me that TypeError: Cannot read properties of undefined (reading 'map')
. I didn't change anything about redux and thunk but useSelector gets nothing. Also, the interface(it works) didn't give any response.
thunk and slice:
export const getTopBanners = createAsyncThunk(
'home/getTopBanners',
async ()=>{
console.log('hello?');
const response = await axiosGetTopBanner();
console.log('res:'+response);
return response.banners
}
)
export const topBannerSlice = createSlice({
name:'topBanner',
initialState:{
pics:[],
isLoading:false
},
extraReducers:{
[getTopBanners.pending]:(state)=>{
state.isLoading = true;
},
[getTopBanners.fulfilled]:(state,action)=>{
state.pics = action.payload;
state.isLoading = false;
},
[getTopBanners.rejected]:(state)=>{
state.isLoading = false;
}
}
})
component:
const dispatch = useDispatch();
//gets nothing here
const topBanners = useSelector((state) => state.topBanner.pics);
useEffect(() => {
dispatch(getTopBanners());
}, [dispatch]);
store:
const store = configureStore({
reducer:{
topBanner:topBannerReducer,
recommendData:recommendDataReducer
}
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)