浏览代码

now cart function normally, but there is a problem with value(it sets to 1 if changed)

miskson 3 年之前
父节点
当前提交
9813f877ca
共有 1 个文件被更改,包括 14 次插入15 次删除
  1. 14 15
      hw18-react-store/src/App.js

+ 14 - 15
hw18-react-store/src/App.js

@@ -232,6 +232,14 @@ const GoodCard = ({good:{_id, name, price, images}, onAdd}) =>
 
 const CGoodCard = connect(null, {onAdd: actionCartAdd})(GoodCard)
 
+const Category = ({cat:{name, goods=[]}={}}) => 
+    <div className='Category'>
+        <h1>{name}</h1>
+        <ul>{goods.map(good => <CGoodCard good={good} />)}</ul>
+    </div>
+
+const CCategory = connect(state => ({cat:state.promise.catById?.payload || {}}))(Category)
+
 const Koshik = ({cart}) => {
     let goodsInCart = cart
     let allGoodsInCart = 0
@@ -248,25 +256,16 @@ const Koshik = ({cart}) => {
 
 const CKoshik = connect(({cart}) => ({cart}))(Koshik)
 
-
-const Category = ({cat:{name, goods=[]}={}}) => 
-    <div className='Category'>
-        <h1>{name}</h1>
-        <ul>{goods.map(good => <CGoodCard good={good} />)}</ul>
-    </div>
-
-const CCategory = connect(state => ({cat:state.promise.catById?.payload || {}}))(Category)
-
-
-const CartItem = ({cart:{_id, name, price, images}, onChange, onRemove}) => {
-    console.log('good', _id, name, onChange)
+const CartItem = ({cart:{_id, name, price, images}, count: {count}, onChange, onRemove}) => {
+    console.log('good', _id)
     return(
         <li className='GoodCard'> 
             <h2>{name}</h2>
             {images && images[0] && images[0].url && <img className='GoodImg' src={backendURL + '/' + images[0].url} />}
             <br/>
-            <strong>Цена: {price}</strong>
-            <label>Кол-во покупки: <input type="number" min="1" onInput={() => onChange({_id, name, price, images})}/></label>
+            <strong>Цена: {price * count}</strong>
+            &nbsp;
+            <label>Кол-во покупки: <input type="number" value={count} onInput={() => onChange({_id, name, price, images})}/></label>
             <br/>
             <button>Заказать</button>
             <button onClick={() => onRemove({_id, name, price, images})}>Удалить заказ[X]</button>
@@ -286,7 +285,7 @@ const Cart = ({cart}) => {
     return(
         <div>
             <h1>Корзина</h1>
-            <ul>{cartArr.map(good => <CCartItem cart={good} />)}</ul>
+            <ul>{cartArr.map(item => <CCartItem cart={item.good} count={item} />)}</ul>
         </div>
     )
 }