React v17使用konva/react-konva绘制多边形标注时出现useId错误
解决React v17中使用react-konva出现TypeError: react__WEBPACK_IMPORTED_MODULE_0__.useId的问题
这个错误确实是因为你的React版本(v17.0.2)过旧导致的。useId()是React 18才正式引入的内置钩子,你当前使用的react-konva版本已经依赖了这个钩子,所以在React 17环境下运行会触发该错误。
以下是两种可行的解决方案:
升级React到18版本
执行以下命令完成升级:npm install react@^18 react-dom@^18升级后需要检查项目中其他第三方依赖是否兼容React 18,部分老旧库可能需要同步更新版本。
降级react-konva到兼容React 17的版本
选择未引入useId()依赖的react-konva版本,比如react-konva@^18.2.1(该版本兼容React 17),执行以下命令安装:npm install react-konva@^18.2.1 konva@^8.4.0此方案无需升级React,即可继续实现多边形边界标注功能。
你在codesandbox中使用最新包能正常运行,是因为codesandbox默认使用了React 18版本,刚好满足react-konva对useId()的依赖要求。
内容的提问来源于stack exchange,提问作者realtouseef
相关产品推荐
相关产品推荐

