Unturect typeError:AddItem不是OnClick的功能(itemcard.js:16:1)
这是我每次尝试在购物车中添加一些东西的错误。
Unturect typeError:AddItem不是OnClick(ItemCard.js:16:1)的功能。
我无法弄清楚我在做什么错。我是新手做出反应的新手,因此将不胜感激。
这是我的itemcard.js
import {useCart} from 'react-use-cart'
const ItemCard = (props) => {
const {addItem}=useCart();
return (
<div className='col-11 col-md-6 col-lg-3 mx-0 mb-4'>
<div class="card p-0 overflow-hidden h-100 shadow" >
<img src={props.img} class="card-img-top img-fluid" alt=""/>
<div class="card-body text-center">
<h5 class="card-title">{props.title}</h5>
<h5 class="card-title">${props.price}</h5>
<p class="card-text">{props.desc}</p>
<buttton class="btn btn-success"
onClick={()=>addItem(props.item)}
>Add to Cart</buttton>
</div>
</div>
</div>
)
}
export default ItemCard```
这是我的购物车。
import React from 'react'
import { useCart } from 'react-use-cart'
import ItemCard from './ItemCard';
const Cart = () => {
const {
isEmpty,
totalUniqueItems,
totalItems,
items,
cartTotal,
updateItemQuantity,
removeItem,
emptyCart,
}=useCart();
if(isEmpty) return <h1 className='text-center'>Your Cart is Empty</h1>
return (
<section className='py-4 container'>
<div className='row justify-content-center'>
<div className='col-12'>
<h5>Cart ({totalUniqueItems}) total Items:({totalItems})</h5>
<table className='table table-light table-hover m-0'>
<tbody>
{items.map((item,index)=>{
return(
<tr key={index}>
<td>
<img src={item.img} style={{height:'6rem'}}/>
</td>
<td>{item.title}</td>
<td>{item.price}</td>
<td>Quantity ({item.quantity})</td>
<td>
<button className='btn btn-info ms-2'
onClick={()=>updateItemQuantity(item.id, item.quantity - 1)}
>-</button>
<button className='btn btn-info ms-2'
onClick={()=>updateItemQuantity(item.id, item.quantity + 1)}
>+</button>
<button className='btn btn-danger ms-2'>Remove Item</button>
</td>
</tr>
)
})}
</tbody>
</table>
</div>
</div>
</section>
)
}
export default Cart```
这是我的app.js
import './App.css';
import Header from './Header'
import {BrowserRouter as Router, Switch, Route} from 'react-router-dom'
import Login from './Login'
import Home from './Home';
import Checkout from './Checkout';
import Footer from './Footer';
import Navlinks from './Navlinks';
import Cart from './Cart';
function App() {
return (
<Router>
<div className="App">
<Switch>
<Route path="/checkout">
<Header/>
<Checkout/>
</Route>
<Route path="/login">
<Login/>
</Route>
<Route path="/">
<Header/>
<Navlinks/>
<cartProvider>
<Home/>
<Cart/>
</cartProvider>
<Footer/>
</Route>
</Switch>
</div>
</Router>
);
}
export default App;```
这是我的data.js
const data = {
productData:[
{
id:1,
img: vase,
title:'Porcilane flower vase',
desc: '',
price: 46,
},
{
id:1,
img: vase,
title:'Porcilane flower vase',
desc: '',
price: 46,
},
{
id:1,
img: vase,
title:'Porcilane flower vase',
desc: '',
price: 46,
},
{
id:1,
img: vase,
title:'Porcilane flower vase',
desc: '',
price: 46,
},
],
};
export default data;```
This is the error I get every time I try and add something to my cart.
Uncaught TypeError: addItem is not a function at onClick (ItemCard.js:16:1).
I cannot figure out what I am doing wrong. I'm new to react so any help would be greatly appreciated.
This is my ItemCard.js
import {useCart} from 'react-use-cart'
const ItemCard = (props) => {
const {addItem}=useCart();
return (
<div className='col-11 col-md-6 col-lg-3 mx-0 mb-4'>
<div class="card p-0 overflow-hidden h-100 shadow" >
<img src={props.img} class="card-img-top img-fluid" alt=""/>
<div class="card-body text-center">
<h5 class="card-title">{props.title}</h5>
<h5 class="card-title">${props.price}</h5>
<p class="card-text">{props.desc}</p>
<buttton class="btn btn-success"
onClick={()=>addItem(props.item)}
>Add to Cart</buttton>
</div>
</div>
</div>
)
}
export default ItemCard```
This is my Cart.js
import React from 'react'
import { useCart } from 'react-use-cart'
import ItemCard from './ItemCard';
const Cart = () => {
const {
isEmpty,
totalUniqueItems,
totalItems,
items,
cartTotal,
updateItemQuantity,
removeItem,
emptyCart,
}=useCart();
if(isEmpty) return <h1 className='text-center'>Your Cart is Empty</h1>
return (
<section className='py-4 container'>
<div className='row justify-content-center'>
<div className='col-12'>
<h5>Cart ({totalUniqueItems}) total Items:({totalItems})</h5>
<table className='table table-light table-hover m-0'>
<tbody>
{items.map((item,index)=>{
return(
<tr key={index}>
<td>
<img src={item.img} style={{height:'6rem'}}/>
</td>
<td>{item.title}</td>
<td>{item.price}</td>
<td>Quantity ({item.quantity})</td>
<td>
<button className='btn btn-info ms-2'
onClick={()=>updateItemQuantity(item.id, item.quantity - 1)}
>-</button>
<button className='btn btn-info ms-2'
onClick={()=>updateItemQuantity(item.id, item.quantity + 1)}
>+</button>
<button className='btn btn-danger ms-2'>Remove Item</button>
</td>
</tr>
)
})}
</tbody>
</table>
</div>
</div>
</section>
)
}
export default Cart```
This is my App.js
import './App.css';
import Header from './Header'
import {BrowserRouter as Router, Switch, Route} from 'react-router-dom'
import Login from './Login'
import Home from './Home';
import Checkout from './Checkout';
import Footer from './Footer';
import Navlinks from './Navlinks';
import Cart from './Cart';
function App() {
return (
<Router>
<div className="App">
<Switch>
<Route path="/checkout">
<Header/>
<Checkout/>
</Route>
<Route path="/login">
<Login/>
</Route>
<Route path="/">
<Header/>
<Navlinks/>
<cartProvider>
<Home/>
<Cart/>
</cartProvider>
<Footer/>
</Route>
</Switch>
</div>
</Router>
);
}
export default App;```
This is my data.js
const data = {
productData:[
{
id:1,
img: vase,
title:'Porcilane flower vase',
desc: '',
price: 46,
},
{
id:1,
img: vase,
title:'Porcilane flower vase',
desc: '',
price: 46,
},
{
id:1,
img: vase,
title:'Porcilane flower vase',
desc: '',
price: 46,
},
{
id:1,
img: vase,
title:'Porcilane flower vase',
desc: '',
price: 46,
},
],
};
export default data;```
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在app.js中添加
并扭曲所有内容
:
In App.js Add
and warp all in
For example :