<Link> 没有使用 react-router-dom 发送到正确的页面
<Link> is not sending to the proper page with react-router-dom
我正在尝试使用 React 构建我的第一个网站,但我在导航方面遇到了很多麻烦。我正在使用 react-router,出于某种原因,我的标签正在更改页面顶部的 url,但没有呈现正确的组件。
这是我的 navbar.jsx:
import React, { Component } from "react";
import { Link, BrowserRouter } from "react-router-dom";
class Navbar extends Component {
render() {
return (
<BrowserRouter>
<div>
<ul>
<li><Link to={"/test"}>Test</Link></li>
</ul>
</div>
</BrowserRouter>
)
}
}
export default Navbar;
这里是test.jsx:
import React, { Component } from "react";
class Test extends Component {
state = {};
render() {
return (
<div>
<h1>Test</h1>
</div>
);
}
}
export default Test;
有谁知道为什么这会改变 url(如预期),但不会呈现 test.jsx?
您需要使用Route 来为不同的路由渲染组件。
import React, { Component } from 'react';
import { Link, BrowserRouter, Route, Switch, Redirect } from 'react-router-dom';
import Test from './import-path-of-test-component';
class Navbar extends Component {
render() {
return (
<BrowserRouter>
<div>
<ul>
<li>
<Link to={'/test'}>Test</Link>
</li>
</ul>
<Switch>
<Route exact path="/test" component={Test} />
</Switch>
</div>
</BrowserRouter>
);
}
}
export default Navbar;
我正在尝试使用 React 构建我的第一个网站,但我在导航方面遇到了很多麻烦。我正在使用 react-router,出于某种原因,我的标签正在更改页面顶部的 url,但没有呈现正确的组件。
这是我的 navbar.jsx:
import React, { Component } from "react";
import { Link, BrowserRouter } from "react-router-dom";
class Navbar extends Component {
render() {
return (
<BrowserRouter>
<div>
<ul>
<li><Link to={"/test"}>Test</Link></li>
</ul>
</div>
</BrowserRouter>
)
}
}
export default Navbar;
这里是test.jsx:
import React, { Component } from "react";
class Test extends Component {
state = {};
render() {
return (
<div>
<h1>Test</h1>
</div>
);
}
}
export default Test;
有谁知道为什么这会改变 url(如预期),但不会呈现 test.jsx?
您需要使用Route 来为不同的路由渲染组件。
import React, { Component } from 'react';
import { Link, BrowserRouter, Route, Switch, Redirect } from 'react-router-dom';
import Test from './import-path-of-test-component';
class Navbar extends Component {
render() {
return (
<BrowserRouter>
<div>
<ul>
<li>
<Link to={'/test'}>Test</Link>
</li>
</ul>
<Switch>
<Route exact path="/test" component={Test} />
</Switch>
</div>
</BrowserRouter>
);
}
}
export default Navbar;