export const addToBasket = createAsyncThunk(
"newBasket/addToBasket",
async (id, { cart }) => {
return axios
.get("https://run.mocky.io/v3/04fe3f95-0267-4ab4-a61b-a5f250151459")
.then((res) => {
console.log(cart); ---> undefined
let data = res.data;
data.map((item) => {
if (item.id == id) {
console.log(item);
cart.push(item);
}
});
return cart;
});
}
);
字符串
在我发布的这段代码中,我没有想到我的BJRC函数的第二个输入的值是未定义的。
1条答案
按热度按时间slwdgvem1#
createAsyncThunk
payload creator函数传递两个参数,第一个是传递给调度操作的单个参数值,第二个是thunkApi
对象。重构你的代码,这样你就可以在传递给payload creator的对象中传递
id
和cart
。* 不要 * 改变传递的cart
数组,创建新的数组引用并更新它们。将async/await
和Promise链混合使用也是一种反模式,因此,将GET请求结果重写为await
,并通过特定的id
值附加过滤后的响应数据。字符串
使用方法:
型