react

import React, { useState } from 'react'
import Measl from './components/Meals/meals'
import { faHelicopter } from '@fortawesome/free-solid-svg-icons'

// 模拟一组食物数据
const MEALS_DATA = [
  {
    id: "1",
    title: "汉堡包",
    desc: "百分百纯牛肉配搭爽脆酸瓜洋葱粒与美味番茄酱经典滋味让你无法抵挡!",
    price: 12,
    img: "/images/1.png"
  },
  {
    id: "2",
    title: "双层吉士汉堡",
    desc: "百分百纯牛肉与双层香软芝,加上松软面包及美味酱料,诱惑无人能挡!",
    price: 20,
    img: "/images/2.png"
  },
  {
    id: "3",
    title: "巨无霸",
    desc: "两块百分百纯牛肉,搭配生菜、洋葱等新鲜食材,口感丰富,极致美味!",
    price: 24,
    img: "/images/3.png"
  },
  {
    id: "4",
    title: "麦辣鸡腿汉堡",
    desc: "金黄脆辣的外皮,鲜嫩幼滑的鸡腿肉,多重滋味,一次打动您挑剔的味蕾!",
    price: 21,
    img: "/images/4.png"
  },
  {
    id: "5",
    title: "板烧鸡腿堡",
    desc: "原块去骨鸡排嫩滑多汁,与翠绿新鲜的生菜和香浓烧鸡酱搭配,口感丰富!",
    price: 22,
    img: "/images/5.png"
  },
  {
    id: "6",
    title: "麦香鸡",
    desc: "清脆爽口的生菜,金黄酥脆的鸡肉。营养配搭,好滋味的健康选择!",
    price: 14,
    img: "/images/6.png"
  },
  {
    id: "7",
    title: "吉士汉堡包",
    desc: "百分百纯牛肉与香软芝士融为一体配合美味番茄醬丰富口感一咬即刻涌现!",
    price: 12,
    img: "/images/7.png"
  }
]

function App() {

  // 创建一个state用来存储食物列表
  const [mealsData, setMealsData] = useState(MEALS_DATA)
  // 创建一个state,用来存储购物车的数据
  /*
    1.商品 []
    2.商品总数 (totalAmount)
    3.商品总价(totalPrice)
  */
  // 购物车的数据,
  const [cartData, setCartData] = useState({
    items: [],
    totalAmount: 0,
    totalPrice: 0
  })

  // 向购物车种添加商品
  const addMealHandler = (meal) => {
    // meal 要添加进购物车的商品
    // 对购物车进行复制
    const newCart = { ...cartData }
    // 判断购物车中是否存在该商品
    if (newCart.items.indexOf(meal) === -1) {
      // 将meal添加到购物车中
      newCart.items.push(meal)
      meal.amount = 1
    } else {
      // 增加商品的数量
      meal.amount += 1
    }
    // 增加总数
    newCart.totalAmount += 1
    // 增加总金额
    newCart.totalPrice += meal.price
    // 重新设置购物车
    setCartData(newCart)
  }

  const subMealHandler = (meal) => {
    const newCart = { ...cartData }
    // 减少商品的数量
    meal.amount -= 1
    // 减少总数
    newCart.totalAmount -= 1
    // 减少总金额
    newCart.totalPrice -= meal.price
    // 重新设置购物车
    setCartData(newCart)
  }

  return (
    <div>
      <Measl mealsData={mealsData} onAdd={addMealHandler} onSub={subMealHandler} />
    </div>
  );
}

export default App;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值