开发者问题收集

TypeError:无法读取未定义的 React.js 的属性“Item”

2021-01-06
367

我正在用 React.js 开发一个电子商务网站,在 Chrome 中出现了“TypeError:无法读取未定义的属性‘Item’”。这里还有错误和 VS Code 的屏幕截图,与发生错误的代码本身相同。 请帮忙!我将不胜感激!:)

在这里您可以看到代码和错误

在这里您可以看到代码和错误

import React from 'react'
import { Link } from 'react-router-dom'
import { Row, Col, Image, ListGroup, Card, Button } from 'react-router-bootstrap'
import Rating from '../components/Rating'
import products from '../products'


const ProductScreen = ({ match }) => {
    const product = products.find((p) => p._id === match.params.id)

  return (
    <>
        <Link className='btn btn-light my-3' to='/'>
            Go Back
        </Link>
        <Row>
            <Col md={6}>
                <Image src={product.image} alt={product.name} fluid />
            </Col>
            <Col md={3}>
                <ListGroup variant='flush'>
                    <ListGroup.Item>
                        <h3>{product.name}</h3>
                    </ListGroup.Item>
                    <ListGroup.Item>
                        <Rating value={product.rating} text ={`${product.numReviews} reviews`} />
                    </ListGroup.Item>
                </ListGroup>
            </Col>
        </Row>
    </>
    )    
}

export default ProductScreen
2个回答

import { Row, Col, Image, ListGroup, Card, Button } from 'react-router-bootstrap'

更改为

import { Row, Col, Image, ListGroup, Card, Button } from 'react-bootstrap'

然后错误消失。

使用 react-router-bootstrap 您可以更改:

<Link className='btn btn-light my-3' to='/'>
  Go Back
</Link>

<LinkContainer to="/">
  <Button>Go Back</Button>
</LinkContainer>

LinkContainer 是从 react-router-bootstrap 导入的

armin yahya
2021-01-06

根据 react-router-bootstrap 文档:

It's an integration between React Router v4 and React Bootstrap by wrapping your React Bootstrap element in a <LinkContainer> .

因此,只需从 react-router-bootstrap 导入 <LinkContainer> ,对于另一个组件(如 ListButton ),请从 react-bootstrap 包中导入它们,然后根据其 文档 进行安装

就我个人而言,我认为没有理由使用 react-router-bootstrap 包。

Mohammad Reza Ghasemi
2021-01-06