【发布时间】:2022-06-17 21:14:09
【问题描述】:
我正在做一个 React 项目,一切正常。然后我开始使用react-router-dom,但路由器不工作。我想转到主屏幕,但它却给了我这些错误:
app.js:
import Container from 'react-bootstrap/Container'
import Footer from './components/footer';
import Header from './components/header';
import './index.css';
import {BrowserRouter as Router, Route} from 'react-router-dom'
import HomeScreen from './screens/homeScreen';
function App() {
return (
<Router>
<Header/>
<main className='py-3'>
<Container >
<Route path="/" exact component={HomeScreen} />
</Container>
</main>
<Footer/>
</Router>
);
}
export default App;
HomeScreen.js:
import React from 'react'
import products from '../products'
import {Row, Col} from 'react-bootstrap'
import Product from '../components/product'
function homeScreen() {
return (
<div>
<h1>Latest Products</h1>
<Row>
{products.map(product =>(
<Col key={product._id} sm={12} md={6} lg={4} xl={3}>
<Product product={product} />
</Col>
))}
</Row>
</div>
)
}
export default homeScreen
【问题讨论】:
-
好的,如果安装了
react-router-dom@6,则根据 Yousoumar 的回答修复您的代码,然后报告问题所在。您需要先解决这些差异。 -
错误似乎是说
React本身为空。 react-router-dom/index.tsx:151 是BrowserRouter使用React.useRef钩子声明 React ref 以保存历史上下文的代码行,但它不能因为React为空。从当前代码中不清楚是什么导致了这个问题。您确定您已正确安装所有依赖项吗? -
是的,a lot 与 2019 年相比发生了变化。2 个版本的 React 和一个 major
react-router-dom的版本,具有明显不同的 API。您能否分享一个更完整的代码示例和您的 package.json 文件,以便我们了解您可能已安装的内容以及您尝试运行的内容的完整上下文? -
另外@AlixaProDev 确保您的Node.js 版本不高于
16.15.0,当前stable version。 -
是的,降级它。之后,删除您的
node_modules文件夹和package-lock.json(不是package.json),然后运行npm i && npm start。
标签: javascript reactjs react-router react-dom