完成购物车功能
This commit is contained in:
@@ -8,6 +8,7 @@ import {getShopGoods} from "@/api/shop/shopGoods";
|
||||
import {Swiper} from '@nutui/nutui-react-taro'
|
||||
import {wxParse} from "@/utils/common";
|
||||
import "./index.scss";
|
||||
import {useCart} from "@/hooks/useCart";
|
||||
|
||||
const GoodsDetail = () => {
|
||||
const [goods, setGoods] = useState<ShopGoods | null>(null);
|
||||
@@ -15,6 +16,21 @@ const GoodsDetail = () => {
|
||||
const router = Taro.getCurrentInstance().router;
|
||||
const goodsId = router?.params?.id;
|
||||
|
||||
// 使用购物车Hook
|
||||
const { cartCount, addToCart } = useCart();
|
||||
|
||||
// 处理加入购物车
|
||||
const handleAddToCart = () => {
|
||||
if (!goods) return;
|
||||
|
||||
addToCart({
|
||||
goodsId: goods.goodsId!,
|
||||
name: goods.name || '',
|
||||
price: goods.price || '0',
|
||||
image: goods.image || ''
|
||||
});
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (goodsId) {
|
||||
getShopGoods(Number(goodsId))
|
||||
@@ -100,8 +116,9 @@ const GoodsDetail = () => {
|
||||
height: "32px",
|
||||
top: "50px",
|
||||
right: "110px",
|
||||
}}>
|
||||
<Badge value={8} top="-2" right="2">
|
||||
}}
|
||||
onClick={() => Taro.navigateTo({url: '/pages/cart/cart'})}>
|
||||
<Badge value={cartCount} top="-2" right="2">
|
||||
<div style={{display: 'flex', alignItems: 'center'}}>
|
||||
<Cart size={16}/>
|
||||
</div>
|
||||
@@ -181,7 +198,7 @@ const GoodsDetail = () => {
|
||||
</div>
|
||||
<div className={'buy-btn mx-4'}>
|
||||
<div className={'cart-add px-4 text-sm'}
|
||||
onClick={() => Taro.showToast({title: '加入购物车成功', icon: 'success'})}>加入购物车
|
||||
onClick={() => handleAddToCart()}>加入购物车
|
||||
</div>
|
||||
<div className={'cart-buy pl-4 pr-5 text-sm'}
|
||||
onClick={() => Taro.navigateTo({url: '/shop/orderConfirm/index'})}>立即购买
|
||||
|
||||
Reference in New Issue
Block a user