【发布时间】:2020-11-11 07:15:00
【问题描述】:
我这里有一个演示
https://stackblitz.com/edit/react-ts-shopping-cart-ssofgc?file=Shop.tsx
抱歉,这不是最好的问题,但是
我的演示是一个使用 React 和 Typescript 的简单购物车。
可以在购物车中添加和删除产品。
我在 stackblitz 中的演示有效,但在我的应用程序中使用相同的代码时出错。
在我的应用中,removeFromCart 出现错误
我在这里得到错误
const removeFromCart = (
e: React.MouseEvent<HTMLInputElement, MouseEvent>,
item: IProduct
) => {
let cartCopy = [...cart]; // Error here - Type 'IProduct' must have a '[Symbol.iterator]()' method that returns an iterator.
cartCopy = cartCopy.filter(cartItem => cartItem.id !== item.id);
setCart(cartCopy);
};
错误是
Type 'IProduct' must have a '[Symbol.iterator]()' method that returns an iterator.
谁能解释这个错误或如何解决它。
【问题讨论】:
-
什么是购物车类型,
cart来自哪里?它似乎不是您的removeFromCart函数的参数 -
我现在看到(在你的 stackblitz 链接中)
cart来自const [cart, setCart] = useState([]);
标签: reactjs typescript