【发布时间】:2021-02-27 01:23:36
【问题描述】:
我遇到了 React Router 的问题,当我运行应用程序时,主页显示但其他页面不呈现,我正在使用一些名为 react-responsive-animate-navbar 的导航栏库,即导航栏工作正常,当我单击时 URL 发生更改,但我为路径/url 指定的组件未呈现。我尝试了几个在 stackoverflow 和 github 上找到的解决方案,但都没有奏效。
代码:
App.js
import React, { useState } from "react";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import NavigationBar from "../NavigationBar/NavigationBar";
import Menu from "../Menu/Menu";
import Login from "../Login/Login";
import UpdateUser from "../UpdateUser/UpdateUser";
const App = () => {
const [token, setToken] = useState(1);
return (
<Router>
<NavigationBar token={token} />
<Switch>
<Route exact path="/" component={token >= 0 ? Menu : () => <Login token={token} setToken={setToken}/>} />
<Route path="/update" component={() => <UpdateUser />} />
</Switch>
</Router>
);
};
导航栏
import React from "react";
import { ReactNavbar } from "react-responsive-animate-navbar";
import "./NavigationBar.css";
const NavigationBar = ({ token }) => {
return (
<ReactNavbar
color="#000"
logo="../../styles/images/logo.png"
menu={[
{ name: "דף הבית", to: "/" },
{ name: "מדריך", to: "/guide" },
{ name: "עדכון משתמש", to: "/update" },
{ name: "התנתק", to: "/contact" },
]}
/>
);
};
export default NavigationBar;
更新:
我发现当我更改 url 并刷新页面时,会呈现页面,否则点击时什么都没有发生,并且 url 只是在改变。 我怎样才能让它在不需要刷新的情况下渲染?
提前谢谢大家!
【问题讨论】:
-
您好像不是在导入实际的组件?您还可以使用 useContext 挂钩来存储令牌并在整个应用程序中持续存在。然后在您的三元组中,您可以简单地放置 token 而不是 token >= 0,这对我来说没有多大意义。
-
@wjpayne83 我愿意,我尽量避免添加不必要的代码。代码没有错误什么的。
-
对您的问题似乎很重要,任何人都会注意到的第一件事是您没有导入组件。我只是很难理解你的代码。为什么在你的路由组件中使用箭头函数?
标签: javascript reactjs react-router