React报错:BrowserRouter无法作为JSX组件使用的问题求助
React报错:BrowserRouter无法作为JSX组件使用的问题求助
嘿,我刚碰到这个一模一样的报错,折腾了好一会儿才搞明白问题出在哪!先瞅瞅你代码里的导入部分——你写的是import BrowserRouter from 'react-router-dom';对吧?这就是问题的根源啦!
在react-router-dom(尤其是常用的v6版本)里,BrowserRouter是命名导出的组件,不是默认导出。你直接用默认导入的方式,拿到的其实是整个模块对象,根本不是能用来渲染的JSX组件,自然就会抛出这个错误。
给你两个关键的修复步骤:
- 修正导入语句,改成命名导入的形式:
import { BrowserRouter } from 'react-router-dom'; - 然后在渲染根组件的时候,用
BrowserRouter把你的App组件包裹起来,完整的渲染代码大概是这样:root.render( <React.StrictMode> <BrowserRouter> <App /> </BrowserRouter> </React.StrictMode> );
要是改完之后还有问题,你可以检查下react-router-dom的版本,确保是v6或者兼容的版本,不过大部分情况下,导入方式错了是最常见的原因~
备注:内容来源于stack exchange,提问作者George Bentz
相关产品推荐
相关产品推荐

