Flutter Web使用html_editor_enhanced出现PointerEvent类型不匹配错误
报错根因
该报错由Flutter版本与flutter_colorpicker插件版本不兼容触发:高版本Flutter中addAllowedPointer方法的入参要求为PointerDownEvent类型,但html_editor_enhanced旧版本内部固定依赖flutter_colorpicker:0.4.0,该版本对应代码位置传参为父类PointerEvent,类型不匹配导致编译失败。单独声明最新版flutter_colorpicker不生效的原因是,html_editor_enhanced内部的依赖声明优先级高于项目顶层的依赖声明,会强制拉取0.4.0版本的flutter_colorpicker。
解决方案
- 方案一(推荐,无侵入):在
pubspec.yaml中添加依赖覆盖规则,强制使用兼容新版的flutter_colorpicker
配置完成后执行dependency_overrides: flutter_colorpicker: ^1.0.3flutter clean、flutter pub get重新拉取依赖即可。 - 方案二(临时修复):手动修改本地pub缓存中的报错文件,打开报错提示的
hsv_picker.dart第731行,将代码修改为:
该方案缺点是清除pub缓存后需要重新修改。super.addAllowedPointer(event as PointerDownEvent); - 方案三:将
html_editor_enhanced升级到2.5.0及以上版本,新版插件已经适配了高版本Flutter的依赖规则,不需要额外配置即可解决该问题。
内容的提问来源于stack exchange,提问作者Mithson
相关产品推荐
相关产品推荐

