React-Native使用react-native-location-view报style属性未定义错误
错误原因
你使用的react-native-location-view库已停止维护,代码中使用了React Native 0.69+版本正式移除的废弃API:
- 代码第7行导入的
ViewPropTypes已经从React Native核心库中移除 - 代码第39行使用的
Text.propTypes.style也属于已废弃的写法
以上两个废弃属性读取结果为undefined,调用.style就触发了你遇到的报错。
修复方案
方案1:临时修改node_modules源码(仅本地测试使用)
修改node_modules/react-native-location-view/src/LocationView.js文件:
- 先安装兼容依赖:
npm i deprecated-react-native-prop-types - 修改导入逻辑,替换原有
ViewPropTypes导入语句:// 原有从react-native导入ViewPropTypes的代码删除,替换为下面的导入 import { ViewPropTypes } from 'deprecated-react-native-prop-types'; - 替换propTypes定义中
Text.propTypes.style写法,将第39行的
修改为actionTextStyle: Text.propTypes.style,actionTextStyle: PropTypes.style,
方案2:使用patch-package永久固化修改
如果需要在团队协作、打包场景下生效,可通过patch-package工具固化修改:
- 安装patch-package工具:
npm i patch-package -D - 完成方案1的源码修改后,执行命令生成补丁:
npx patch-package react-native-location-view - 在package.json的scripts配置中添加postinstall钩子:
"postinstall": "patch-package"
后续每次执行npm install都会自动应用你做的修改,无需重复改源码。
方案3:替换维护中的替代库
如果不想修改源码,可更换为仍在维护的同功能库,避免后续再出现版本兼容问题。
内容的提问来源于stack exchange,提问作者Imdadul Haque
相关产品推荐
相关产品推荐

