React Native 0.66执行npm install后报错找不到ScrollResponder模块如何解决
问题原因
react-native@0.65及以上版本已经将ScrollResponder模块从react-native/Libraries/Components/ScrollResponder路径移除,你项目依赖的deprecated-react-native-listview是已停止维护的废弃包,仍在引用旧路径的模块,因此触发无法解析模块的报错。
解决方案
方案一(推荐):替换废弃的ListView组件
React Native 从0.59版本开始就将ListView标记为废弃,官方推荐直接使用内置的FlatList或SectionList组件替代,性能更优也完全兼容0.66版本。你可以直接卸载废弃包:
执行npm uninstall deprecated-react-native-listview,再将业务代码中所有用到ListView的地方替换为FlatList即可。方案二(临时兼容,无需修改业务代码):给废弃包打补丁
如果暂时没有时间调整业务代码,可以通过补丁工具修改依赖包的引用路径:
- 安装补丁工具:执行
npm install patch-package --save-dev - 打开
node_modules/deprecated-react-native-listview/index.js文件,找到引用ScrollResponder的代码行,将import ScrollResponder from 'react-native/Libraries/Components/ScrollResponder'
替换为import { ScrollResponder } from 'react-native'
(0.66版本的ScrollResponder已调整为从react-native包根目录直接导出) - 执行
npx patch-package deprecated-react-native-listview生成补丁文件,后续重新安装依赖时补丁会自动生效,不需要每次手动修改。
验证生效
修复完成后执行以下命令清除缓存重启项目即可:
rm -rf node_modules package-lock.json npm install npx react-native start --reset-cache
内容的提问来源于stack exchange,提问作者Brita
相关产品推荐
相关产品推荐

