【发布时间】:2020-08-23 16:03:30
【问题描述】:
在我的反应应用程序中,我有 /lead-manager 路线,/login 路线
还有/ 路由,后者是app.js 本身,我不希望任何人访问,如果有人只是去/ 路由,我希望他们重定向到/lead-manager 路由。
所以这就是我根据给出的解决方案所做的
here。
我的 app.jsx 部分
import {
BrowserRouter as Switch,
useHistory,
Route,
useLocation,
} from "react-router-dom";
const App = ({ confirmAuthentication }) => {
let location = useLocation();
let history = useHistory();
useEffect(() => {
async function fetchIt() {
if (localStorage.jwt !== undefined) {
confirmAuthentication();
}
}
fetchIt();
if (location.pathname === "/") {
history.push("lead-manager");
}
}, []);
return (
<div>
<Switch>
<Route exact path="/testing">
<TestingComponent />
</Route>
<PrivateRoute path="/lead-manager" component={LeadApp} />
<Route exact path="/login">
<LoginView />
</Route>
</Switch>
</div>
);
}
访问/ 路径时得到的输出是URL 中的/lead-manager。哪个是期望的,但该组件不会与/lead-manager 路由中定义的组件相应地呈现。它只是停留在/ 路由上,即使 URL 显示 /lead-manager
希望这很清楚
【问题讨论】:
-
你是如何定义使用过的路由器的,它是否在 App 组件中呈现?
-
我现在更新了我的查询@ShubhamKhatri
-
你的控制台有什么错误吗?
-
@Panther 控制台没有错误
-
我认为你必须推
/lead-manager而不是lead-manager!!
标签: reactjs react-router react-functional-component