【发布时间】:2021-06-19 13:28:43
【问题描述】:
错误:
index.js:1 在操作中检测到不可序列化的值,在 路径:
payload.config.transformRequest.0。
值:ƒ
transformRequest(数据,标头){
normalizeHeaderName(headers, 'Accept'); normalizeHeaderName(headers, 'Content-Type'); if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.i…
切片:
export const getProducts = createAsyncThunk(
'products/getProducts',
async() => {
const res = await axios.get('http://localhost:5000/products/view-products', {withCredentials: true});
return res;
}
)
const getProductsSlice = createSlice({
name : 'products',
initialState : {
list : [],
status : null
},
extraReducers : {
[getProducts.pending] : (state) => {
state.status = 'loading'
},
[getProducts.fulfilled] : (state, {payload}) => {
console.log("produtcts payload: ", payload.data)
state.list = payload.data
state.status = 'success'
},
[getProducts.rejected] : (state) => {
state.status = 'failed'
}
}
})
内部组件:
const dispatch = useDispatch();
const data = useSelector(state => state.products.list);
console.log("the products are :", data);
useEffect(() => {
dispatch(getProducts());
}, [dispatch]);
应用程序中的其他切片工作正常。很难解决不可序列化的
【问题讨论】:
-
return res;应该是return res.data; -
@NadiaCibrikova 谢谢,这解决了它。你能解释一下为什么当状态充满payload.data时它会给出这个^错误吗?
-
@NadiaCibrikova 所以如果我需要状态码,我该怎么办?
-
@ehsan 您需要构建一个包含您需要的字段的新对象,我假设它将是数据和状态代码,使用上面的代码作为示例而不是
return res您将需要做类似return {data: res.data, status: res.status} -
@NadiaCibrikova 是的,很好的解决方案。 tnx
标签: reactjs express redux-thunk redux-toolkit