React Bootstrap使用Accordion报Element type is invalid错误求助
问题根因
你可以先打开项目的package.json文件查看react-bootstrap依赖的版本号,如果版本号小于2.0,就会触发该报错:
你参考的第一种Accordion写法(用到Accordion.Item、Accordion.Header、Accordion.Body子组件)是react-bootstrap 2.0及以上版本才新增的API,1.x版本中并未导出这几个子组件,调用不存在的组件就会触发你遇到的「组件类型无效,得到undefined」的报错。
你代码里第二种能正常运行的写法,正是1.x版本react-bootstrap官方提供的Accordion标准实现方式。
解决方案
你可以根据自己的项目需求二选一:
- 升级react-bootstrap到2.x版本,同时配套升级Bootstrap样式依赖到5.x版本,升级完成后你用到的第一种新API写法就可以正常运行。升级前注意检查当前项目的React版本是否符合2.x版本的依赖要求(React ≥16.8.0)
- 继续使用当前已安装的1.x版本react-bootstrap,所有Accordion组件统一使用你已经跑通的
Accordion.Toggle+Accordion.Collapse写法即可
内容的提问来源于stack exchange,提问作者Hugo Blanadet
相关产品推荐
相关产品推荐

