TypeError: Cannot read properties of undefined (reading 'title')
TypeError: Cannot read properties of undefined (reading 'title')
我遇到了一个奇怪的错误!我正在尝试在 UI 上动态呈现产品。当我的代码中有:
render () {
const cart = this.props.cart
return (
<>
<PanelHeader size="sm" />
<div className="content">
<Row>
<Col xs={12}>
<Card>
<CardHeader>
<CardTitle tag="h4">Products List</CardTitle>
</CardHeader>
<CardBody>
<table class="table table-striped table-hover">
<thead>
<tr>
<th scope="col"><strong>#</strong></th>
<th scope="col"><strong>Name</strong></th>
<th scope="col"><strong>Code Item</strong></th>
<th scope="col"><strong>Quantity</strong></th>
<th scope="col"><strong>Price Total</strong></th>
</tr>
</thead>
{cart.length > 0 &&
<tbody>
<tr>
<th scope="row">1</th>
<td>{cart[0].title}</td>
<td>{cart[0].code}</td>
<td>{cart[0].quantity}</td>
<td>{cart[0].price}</td>
</tr>
</tbody>}
</table>
</CardBody>
</Card>
</Col>
</Row>
</div>
</>
)
}
}
它呈现第一个项目,但是如果我尝试选择第三个项目:即 {cart[2].title} 等等,就会出现“标题”未定义的错误。另外,如果我尝试给 [i] 给我一个“i”未定义的错误!任何想法如何解决它?
提前致谢!
如果您需要呈现购物车数组中的所有商品,请使用:
{cart.map(c =>
<tbody>
<tr>
<th scope="row">1</th>
<td>{c.title}</td>
<td>{c.code}</td>
<td>{c.quantity}</td>
<td>{c.price}</td>
</tr>
</tbody>}
tbody 跳出循环,需要为每一项添加key
<tbody>
{cart.length > 0 && cart.map((item, index) => (
<tr key={item.id}>
<th scope="row">{index}</th>
<td>{item.title}</td>
<td>{item.code}</td>
<td>{item.quantity}</td>
<td>{item.price}</td>
tr>))}
</tbody>
我遇到了一个奇怪的错误!我正在尝试在 UI 上动态呈现产品。当我的代码中有:
render () {
const cart = this.props.cart
return (
<>
<PanelHeader size="sm" />
<div className="content">
<Row>
<Col xs={12}>
<Card>
<CardHeader>
<CardTitle tag="h4">Products List</CardTitle>
</CardHeader>
<CardBody>
<table class="table table-striped table-hover">
<thead>
<tr>
<th scope="col"><strong>#</strong></th>
<th scope="col"><strong>Name</strong></th>
<th scope="col"><strong>Code Item</strong></th>
<th scope="col"><strong>Quantity</strong></th>
<th scope="col"><strong>Price Total</strong></th>
</tr>
</thead>
{cart.length > 0 &&
<tbody>
<tr>
<th scope="row">1</th>
<td>{cart[0].title}</td>
<td>{cart[0].code}</td>
<td>{cart[0].quantity}</td>
<td>{cart[0].price}</td>
</tr>
</tbody>}
</table>
</CardBody>
</Card>
</Col>
</Row>
</div>
</>
)
}
}
它呈现第一个项目,但是如果我尝试选择第三个项目:即 {cart[2].title} 等等,就会出现“标题”未定义的错误。另外,如果我尝试给 [i] 给我一个“i”未定义的错误!任何想法如何解决它? 提前致谢!
如果您需要呈现购物车数组中的所有商品,请使用:
{cart.map(c =>
<tbody>
<tr>
<th scope="row">1</th>
<td>{c.title}</td>
<td>{c.code}</td>
<td>{c.quantity}</td>
<td>{c.price}</td>
</tr>
</tbody>}
tbody 跳出循环,需要为每一项添加key
<tbody>
{cart.length > 0 && cart.map((item, index) => (
<tr key={item.id}>
<th scope="row">{index}</th>
<td>{item.title}</td>
<td>{item.code}</td>
<td>{item.quantity}</td>
<td>{item.price}</td>
tr>))}
</tbody>