reactjs - React Router 防止随机路由

标签 reactjs react-router

如果用户输入不匹配的路由,我将如何构建 React-Router switch 语句以防止发生任何情况?换句话说,我不想要 404 未找到页面;我只是希望什么都不会发生,并且当前的 url 不会改变。

这是我的 switch 语句:

 <Switch>
    <Route path="/" exact>
      <LandingPage />
    </Route>
    <Route path="/login" exact>
      <LandingPage />
    </Route>
    <Route path="/new-account" exact>
      <LandingPage />
    </Route>

    <Route path="/account-settings" exact>
      <AccountSettings />
    </Route>

   
    <Route path="/dashboard" exact>
      <Dashboard userStatus={userStatus} />
    </Route>
    
    <Route path={"*"}>
      {/* Could I somehow achieve this here? */}
    </Route>
  </Switch>

最佳答案

您可以使用自定义 Hook 实现另一个页面( View )并将其放置在这里:

    <Route path={"*"}>
      {/* Could I somehow achieve this here? */}
    </Route>

您的*路线的新组件:

function RedirectHook() {
  history = useHistory() // which imported from react-router-dom
  useEffect(() => {
    history.goBack();
  })

  return null
}

现在,路由列表中不存在的每个页面都将被推送到 RedirectHook,然后发送回原始页面。

关于reactjs - React Router 防止随机路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69326047/

相关文章:

reactjs - 将 Async 函数放入 useEffect 后出现错误

reactjs - React 组件不会重新渲染,但会调用 render()

reactjs - React Material UI - 如何根据另一个值自动从自动完成中删除项目

reactjs - 如何在 React Route 的父级中设置状态变量?

reactjs - 使用react-router-dom,如何从React组件外部访问浏览器History对象?

reactjs - 触发 Redux 操作以响应 React Router 中的路由转换

reactjs - React-scripts 无法在 azure 部署上运行 npm run build

reactjs - react 引导和Panel.Body

reactjs - 那个 Prop 是什么意思?

reactjs - 如何使用 redux-thunk 调度操作让 connected-react-router 重定向?