为管理仪表板创建私有路由时出错

2023-12-02

我尝试使用下面的代码来私有路由管理仪表板 我正在使用react-router-dom:6.2.2。我需要帮助来找出只能由管理员访问的私人路线。我尝试了 stackoverflow 中所有现有的解决方案。

app.js

    <BrowserRouter>
<Routes>
    <Route path="/admin/dashboard" element={<PrivateRouter><Dashboard /> </PrivateRouter>} />
   </Routes>
    </BrowserRouter>

私有 Router.js

        <Route
          {...rest}
          component={(props) => {
            const token = window.localStorage.getItem("userInfo");
            console.log(token)
            if (token) {
              return <Component {...props} />;
            } else {
              return <Navigate to={"/login"} />;
            }
          }}
        />
      );
    }

并在控制台上抛出错误

index.tsx:24 Uncaught Error: A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.
    at invariant (index.tsx:24:1)
    at Route (index.tsx:235:1)
    at renderWithHooks (react-dom.development)

路由器卫士功能:

const routerGuard = () => {
  const token = window.localStorage.getItem("userInfo")
  return !!token // if token exist, return true, else return false
}

您的路线在app.js

<Route path="/admin/dashboard" element={routerGuard() ? <Dashboard /> : <Navigate replace to="/login" />} />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为管理仪表板创建私有路由时出错 的相关文章

随机推荐

  • 在扩展方法中更改数组大小不起作用?

    所以基本上我写了我的小Add数组类型的扩展方法 using System using System Linq public static class Extensions public static void Add
  • MVC(3) 句柄更新

    我正在经历Codeplex 上的本教程 这是 MusicStore 应用程序 在一个场景中 它是将音乐唱片添加到购物篮中 然后它还允许用户删除它 根据我的理解 它是通过在 Controller 中实现的 Ajax 回发来实现的 让我困惑的是
  • 如何在mysql的select中使用if/else条件

    如何在 mysql 中的 select 语句上使用 if else 条件 如果类型 初始读取 Select the Initial Column from table name否则如果 Type 最终读取 Select the Final
  • AngularJs动态下载响应

    我写了一个基于指令斯科特的回答 你会像这样使用它
  • jqgrid - 工具栏文本 - 这是一个好方法吗?

    我已指定userdata在 JSON 响应中 取决于值title财产 标题将发生变化以反映title财产 工具栏中的文本 网格标题和数据表标题之间 将发生变化 HTML table table div div JSON colModel n
  • 如何使用 CSS 拆分表格单元格中的字符串(例如长 URL)?

    情况是这样的 我正在尝试一些 MySpace 页面自定义 如果你有曾经尝试过 stackoverflow 我相信您明白这有多么令人沮丧 基本上它可以通过 CSS 在一组特定的规则内进行自定义 例如不允许使用 字符 多么有用 看看这个blog
  • if 语句中多个条件的 Python 简写[重复]

    这个问题在这里已经有答案了 if x y z print x y 这是 if x y and y z 的简写吗 它在我的代码中有效 但我不确定当多个条件不都是 或 时如何解释 或者以上面的后一种形式写出 是的 如中所述文档 比较可以是任意链
  • 如何在 MATLAB 中为符号变量赋予数字?

    我尝试使用以下代码在 MATLAB 中声明一个符号变量 syms a 我对这个变量进行了计算 一切都很好 但我的问题是 我不知道如何给变量一个数字并得到数字结果 例如我的代码的答案是 answer exp 10 a 例如我想给 a 40并得
  • 当更新 sphinx.conf 中的索引时,总是需要在 sphinx 中重新启动 searchd 吗?

    如果我更新 sphinx conf 文件中的资源 我可以使用 rotate 重新索引 一切正常 如果我更新 sphinx conf 中的索引或添加新索引 rotate 不起作用 我必须重新启动 searchd 我这样做是否正确 我觉得 ro
  • 当不涉及真正的 I/O 调用时,异步链的所有级别是否都需要ConfigureAwait(false)?

    在 Azure Document Db Client SDK 之上实现可重用适配器类型的库 该库可以在任何地方运行 不仅可以在 ASP NET Core Web 服务中运行 还可以在命令行应用程序 ASP NET Web Api 等中运行
  • R 中的 Unicode 变量名称

    我正在开发一个玩具项目 并尝试使用一些 unicode 变量名称来匹配我试图实现的论文 以下代码在 Windows 上的 R 3 4 3 RStudio 版本 1 1 456 和 OSX 上的 R 3 5 1 上运行良好 gt lt fun
  • 如何将 Thunderbird 扩展与 Lightning 集成

    我目前正在为一个项目进行初步研究 如果可行的话 该项目将包含带有 Lightning 集成的 Thunderbird 扩展 我的问题是这样的 如何使用 Thunderbird 扩展以编程方式更改 Lightning 中的 CSS 具体来说
  • Rails 2.3.9 查询参数的编码

    是否可以让rails 将查询参数解码为utf8 如果我有类似 foo param 的东西 我尝试访问控制器中的参数 该参数被编码为 ASCII 8BIT 这会导致很多事情被破坏 因为我们的许多其他字符串都是用 UTF 8 编码的 而 rub
  • 获得授权属性的许可?

    我已经实现了我自己的Authorize属性 我注意到当我使用时它会查询以检查权限 Authorize 有什么方法可以获取该权限并在应用该权限的当前控制器中使用它Authorize属性而无需重写和重新查询控制器中的代码 是的你可以 如果您将
  • iOS 8 下不显示键盘

    当专注于我的应用程序的文本字段时 它们都无法调出键盘 我无法输入任何字母 不过iOS 8之前还可以 我尝试旋转屏幕 发现键盘显示在屏幕范围之外 检查视图框架 它是1024 768 似乎是正确的 最后发现是模拟器的问题 不是iOS 8的bug
  • 无法转换为尺寸:膨胀布局时类型=0x1 [重复]

    这个问题在这里已经有答案了 我的 XML 文件
  • 正则表达式 - 如何用 PHP 替换字符串的最后 3 个单词

    尝试将最后 3 个单词封装在 span tag str Lorem ipsum dolor sit amet h2 preg replace w s w s w span 1 span str 这里是 h2 preg replace w s
  • 使用 Pyspark 进行虚拟编码 [重复]

    这个问题在这里已经有答案了 我希望使用 Pyspark 语法将分类变量虚拟编码为数值变量 如下图所示 我读入这样的数据 data sqlContext read csv data txt sep header true 在 python 中
  • 是否需要通过 TCP 进行应用程序级重传和确认?

    我有以下疑问 1 TCP 是否保证数据包的传送 因此如果使用的传输协议是 TCP 则是否需要应用程序级重传 假设我已经在客户端和服务器之间建立了 TCP 连接 并且服务器向客户端发送消息 然而 客户端离线并仅在 10 小时后返回 那么 TC
  • 为管理仪表板创建私有路由时出错

    我尝试使用下面的代码来私有路由管理仪表板 我正在使用react router dom 6 2 2 我需要帮助来找出只能由管理员访问的私人路线 我尝试了 stackoverflow 中所有现有的解决方案 app js