使用useRoutes提示invalid hook call

文章讲述了在使用Vite、React和TypeScript构建项目时遇到关于在BrowserRouter中使用hooks的错误。开发者分享了错误原因——hooks只能在组件体或函数体内使用,并提供了修改后的代码片段以解决问题,强调了基础学习和文档阅读的重要性。
摘要由CSDN通过智能技术生成

包版本: 

问题: 今天用vite+react+ts重新搭建项目时报错

代码:

router.tsx

import { useRoutes } from 'react-router-dom';
import Home from "../pages/home/index";

const routers=[{
  path: '/',
  element: <Home/>
}
]
// const Router
export const Router = useRoutes(routers);

app.tsx

import React  from 'react'
import './App.css'
import {BrowserRouter} from "react-router-dom";
import {Router} from "./config/router";

function App() {
  return (
    <div>
      <BrowserRouter >
        <Router/>
      </BrowserRouter>
    </div>
  )
}

export default App

原因:

hooks只能在组件体或者函数体内使用 

参考:useRouter() throws "Invalid hook call" when extending React.Component · Issue #8244 · vercel/next.js · GitHub

解决:

router.tsx

import { useRoutes } from 'react-router-dom';
import Home from "../pages/home/index";

const routers=[{
  path: '/',
  element: <Home/>
}
]
// const Router
export const Router = ()=>useRoutes(routers);

ps:  基础不牢 地动山摇~   多看文档~ 😂😂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值