React 路由器在客户端不工作。我如何解决它?
React router is not working client-side. How do i fix it?
我正在使用 React Browser Router,作为带有 create-react-app 的 npm 模块 (react-router-dom)。路由在本地工作正常,但在部署后就不行了。
当按 link 时,我没有被带到所需的位置(例如 /start)。找不到页面。
我查看了 提示,但仍然无效。
我没有使用 Heroku,也不知道是否应该使用。
这是我的反应中的一些代码片段 App.js:
import { BrowserRouter, Route, Switch } from "react-router-dom";
import Home from "./Components/Home.jsx";
import Billigast from "./Components/Billigast";
import NoMatch from "./Components/NoMatch";
import Start from "./Components/Start";
class App extends Component {
render() {
return (
<BrowserRouter>
<div>
<NavBar />
<Switch>
<Route path="/" component={Home} exact />
<Route path="/start" component={Start} />
<Route component={NoMatch} />
</Switch>
</div>
</BrowserRouter>
);
}
}
static.json:
{
"root": "/",
"clean_urls": false,
"routes": {
"/**": "index.html"
}
}
我尝试了几个 "root":
地点。我的 index.html 文件 在 根目录中。
这是 linked 页面之一:
import React from "react";
import NavBar from "./NavBar";
import Form from "./Form";
const Start = () => {
return (
<div>
<Form />
</div>
);
};
export default Start;
感谢您的帮助!
我 没有 正确导入 react-router-dom NavLink。我正在导入 NavLink,但来自 reactstrap。
修复(在NavBar组件中):
import { NavLink as RouterNavLink } from "react-router-dom";
因为 reactstrap 和 react-router-dom 使用相同的名称 (NavLink) 并且由于设计原因我想同时使用两者。
然后我将 RouterNavLink 包裹在 NavLink 中,如下所示:
<NavLink>
<RouterNavLink to="/start">Start</RouterNavLink>
</NavLink>
它不起作用并不奇怪,因为我什至没有正确导入。
此外,我不需要 static.json 文件。
我正在使用 React Browser Router,作为带有 create-react-app 的 npm 模块 (react-router-dom)。路由在本地工作正常,但在部署后就不行了。 当按 link 时,我没有被带到所需的位置(例如 /start)。找不到页面。
我查看了
我没有使用 Heroku,也不知道是否应该使用。
这是我的反应中的一些代码片段 App.js:
import { BrowserRouter, Route, Switch } from "react-router-dom";
import Home from "./Components/Home.jsx";
import Billigast from "./Components/Billigast";
import NoMatch from "./Components/NoMatch";
import Start from "./Components/Start";
class App extends Component {
render() {
return (
<BrowserRouter>
<div>
<NavBar />
<Switch>
<Route path="/" component={Home} exact />
<Route path="/start" component={Start} />
<Route component={NoMatch} />
</Switch>
</div>
</BrowserRouter>
);
}
}
static.json:
{
"root": "/",
"clean_urls": false,
"routes": {
"/**": "index.html"
}
}
我尝试了几个 "root":
地点。我的 index.html 文件 在 根目录中。
这是 linked 页面之一:
import React from "react";
import NavBar from "./NavBar";
import Form from "./Form";
const Start = () => {
return (
<div>
<Form />
</div>
);
};
export default Start;
感谢您的帮助!
我 没有 正确导入 react-router-dom NavLink。我正在导入 NavLink,但来自 reactstrap。
修复(在NavBar组件中):
import { NavLink as RouterNavLink } from "react-router-dom";
因为 reactstrap 和 react-router-dom 使用相同的名称 (NavLink) 并且由于设计原因我想同时使用两者。
然后我将 RouterNavLink 包裹在 NavLink 中,如下所示:
<NavLink>
<RouterNavLink to="/start">Start</RouterNavLink>
</NavLink>
它不起作用并不奇怪,因为我什至没有正确导入。
此外,我不需要 static.json 文件。