首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何转换nextjs的BrowserRouter反应代码?

如何转换nextjs的BrowserRouter反应代码?
EN

Stack Overflow用户
提问于 2022-10-10 19:28:03
回答 2查看 40关注 0票数 0

我试图根据用户是否登录有条件地路由用户,这是由我的全局状态变量user检查的。我正在尝试将这个react代码实现到Next.js中,但是我得到了一个文档引用错误。我如何能够在这段代码中执行相同的逻辑,但让它面向Next.js呢?本质上,我不想使用BrowserRouter

代码语言:javascript
复制
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'
import { useAuthContext } from 'hooks/useAuthContext';
import HomePage from './home';
import ProductPage from './product';
import LoginPage from './login';
import SignupPage from './signup';

export default function IndexPage() {
  const { user } = useAuthContext()

  return (
    <div>
      <BrowserRouter>
        <div>
          <Routes>
            <Route 
              path="/" 
              element={<HomePage />} 
            />
            <Route 
              path="/login" 
              element={!user ? <LoginPage /> : <Navigate to="/" />} 
            />
            <Route 
              path="/signup" 
              element={!user ? <SignupPage /> : <Navigate to="/" />} 
            />
            <Route 
              path="/product" 
              element={!user ? <ProductPage /> : <Navigate to="/" />} 
            />
          </Routes>
        </div>
      </BrowserRouter>
    </div>
  );
}
EN

回答 2

Stack Overflow用户

发布于 2022-10-11 07:25:46

Nextjs有一个基于文件的路由系统。如果您想实现受保护的路由系统,那么最好使用nextjs中间件。(https://nextjs.org/docs/advanced-features/middleware)

票数 0
EN

Stack Overflow用户

发布于 2022-10-11 07:29:54

Next.js解决了这些并发症。如前所述,路由是基于目录的。您可以参考next.js文档这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74019869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档