我正在将移动应用程序从Cordova移植到React Native。Cordova应用程序依赖于第三方JavaScript库 Kandy.Io
此库使用全局document
对象。当我将该库导入我的 React Native 项目时,我看到错误:
document is not defined
我知道没有像浏览器环境中那样的 DOM,但是有没有办法在 React Native 项目中使用文档对象,以便我可以继续使用此库?
我在将 react native webgl 与 threejs 一起使用时遇到了"文档未定义"。
简短总结:纹理加载器不起作用,因为它需要一个图像加载器,而图像加载器需要不可访问的 DOM。
显然有一个三。我这样使用的纹理函数:
let texture = new THREE.Texture(
url //URL = a base 64 JPEG string in this case
);
var img = new Image(128, 128);
img.src = url;
texture.normal = img;
如您所见,我使用了一个图像构造函数,它来自 React Native,并且像这样导入:
import { Image } from 'react-native';
在 react 本机文档中,它将解释如何使用它,它支持 base64 编码的 JPEG。
您可以在您的情况下尝试类似的方法,因此您应该做的是查看哪个函数使用该文档,然后覆盖该函数或使用 react 本机提供的东西来解决它