react-bootstrap导入useAccordionButton提示模块找不到如何解决?
问题根因
你当前安装的react-bootstrap版本为1.6.3,useAccordionButton钩子是react-bootstrap v2.0.0及以上版本才新增的API,1.x版本不存在react-bootstrap/AccordionButton这个导出路径,因此触发模块找不到的报错。
解决方案
你可以根据项目需求二选一:
方案1:升级react-bootstrap到2.x版本
你的项目已经安装了Bootstrap 5.1.1,刚好匹配react-bootstrap 2.x的依赖要求,操作步骤如下:
- 卸载旧版本react-bootstrap:
npm uninstall react-bootstrap
- 安装最新稳定版react-bootstrap:
npm install react-bootstrap@latest
升级完成后原有导入代码可以正常使用,无需修改导入语句。
如果升级后仍然报错,可以删除项目根目录的node_modules文件夹和package-lock.json文件,执行npm cache clean --force清理缓存后重新执行npm install即可。
方案2:保留1.6.3版本,替换为旧版兼容写法
1.x版本的Accordion组件无需使用useAccordionButton钩子,直接使用封装好的Accordion.Toggle组件实现按钮功能即可,示例用法:
import { Accordion, Button } from 'react-bootstrap'; // 组件内使用示例 <Accordion defaultActiveKey="0"> <Accordion.Item eventKey="0"> <Accordion.Header>折叠面板标题</Accordion.Header> <Accordion.Body> 面板内容 </Accordion.Body> </Accordion.Item> {/* 自定义切换按钮写法 */} <Accordion.Toggle as={Button} variant="primary" eventKey="0"> 点击切换面板状态 </Accordion.Toggle> </Accordion>
内容的提问来源于stack exchange,提问作者amortaza
相关产品推荐
相关产品推荐

