引入react-native-video组件时出现TypeError错误求助
问题解决:react-native-video 报错 TypeError: undefined is not an object (evaluating '_reactNative.Image.propTypes.resizeMode')
问题原因
你遇到的错误是因为react-native-video版本与当前React Native版本不兼容:较新的React Native版本已经移除了Image.propTypes这个API,而你使用的react-native-video旧版本仍在依赖这个已弃用的属性,导致调用时出现undefined错误。
解决方案
方案1:升级react-native-video到兼容版本(推荐)
这是最稳妥的解决方式,升级到适配你当前React Native版本的最新版:
- 卸载旧版本:
# npm npm uninstall react-native-video # 或 yarn yarn remove react-native-video - 安装最新稳定版:
# npm npm install react-native-video # 或 yarn yarn add react-native-video - 若你的React Native版本在0.60+,会自动完成依赖链接,无需额外操作;低版本RN需手动执行链接命令:
react-native link react-native-video
方案2:临时修复源码(不推荐,仅应急)
如果暂时无法升级,可以手动修改react-native-video的源码来规避问题,但注意执行npm install/yarn install后修改会被覆盖:
- 找到项目中的
node_modules/react-native-video/Video.js文件 - 在文件顶部添加PropTypes的导入:
import PropTypes from 'prop-types'; - 找到引用
_reactNative.Image.propTypes.resizeMode的代码段,替换为:resizeMode: PropTypes.oneOf(['cover', 'contain', 'stretch', 'repeat', 'center'])
方案3:确认版本兼容性
查看react-native-video官方文档,确认你当前React Native版本对应的兼容版本号,选择匹配的版本安装,避免版本不匹配问题。
内容的提问来源于stack exchange,提问作者Principe Mestizo
相关产品推荐
相关产品推荐

