React Native Expo添加库报错:ReferenceError: Property 'document' doesn't exist
问题原因及解决方法
原因
- 你添加的库依赖了浏览器环境特有的
document对象,但React Native(包括Expo)运行在原生设备的JS引擎(Hermes)中,不存在浏览器的DOM API,当库代码调用document时就会触发这个错误。 - 大概率是你用了仅为web端设计的库,比如某些操作DOM的工具库、未适配RN的web UI组件库,或者依赖浏览器API的第三方工具。
解决方法
- 替换为RN/Expo适配的库:找该库对应的React Native版本,或者功能相似的RN专用库。比如原本用web的文件上传组件,换成
expo-image-picker这类Expo官方适配的库。 - 检查库的兼容配置:部分库同时支持web和RN,可能需要你切换到RN专属的导入方式或配置项,仔细查看库的文档确认。
- 临时模拟
document(不推荐):如果找不到替代库,可以尝试在项目入口文件(比如App.js)中手动添加全局模拟:
但这种方法容易引发其他兼容性问题,仅作为临时应急方案。global.document = {}; - 排查导入模块:确认你导入的是库的RN版本,有没有误导入了web端的入口文件。
内容的提问来源于stack exchange,提问作者Gerben Mol
相关产品推荐
相关产品推荐

