我在看react native fetch blob https://github.com/joltup/react-native-fetch-blob的一些代码,我在他们的示例中看到了调用window.Blob等等..

Windows是否是一个全局变量,就像您在浏览器web环境中看到的那样?或者它在某种程度上代表了当前的可视屏幕?下面的代码示例是否只是替换/重写全局对象?

const Blob = RNFetchBlob.polyfill.Blob;
const fs = RNFetchBlob.fs;
window.XMLHttpRequest = RNFetchBlob.polyfill.XMLHttpRequest;
window.Blob = Blob;

推荐答案

React Native定义了几个多填充的全局变量(都在global以下),这样最初为浏览器开发的某些库就可以正常使用.大多数常见浏览器API的多边形填充都是空的.你可以看到InitializeCore.js个.

window虽然不是空的.设置为global:

if (global.window === undefined) {
  global.window = global;
}

下一个问题是,global中的Blob是多少?

使用Blobadded to global的函数.如果你对它的工作原理感到好奇,可以查看PolyfillFunctions.js文件.Blob本身是在Blob.js中定义的.

polyfillGlobal('Blob', () => require('Blob'));

现在我们看到React Native正在做什么,我们可以回到您的问题:

  • Windows是否是一个全局变量,就像您在浏览器web环境中看到的那样?
  • 或者它在某种程度上代表了当前的可视屏幕?
  • 下面的代码示例是否只是替换/重写全局对象?

React-native相关问答推荐

在第二次加载时仅将本机应用程序设置为状态

ios 中节列表中的scrollToLocation 不起作用.在 Android 上,列表滚动回索引 0,但在 ios 上不会发生同样的情况

找不到变量 atob

React - 类内的useContext

为 React Native TextInput 创建 ref 时出现 TypeScript 问题

React Native:双击退出应用程序

如何在 React Native 中访问原生 UI 组件的实例方法

可以在没有 await 关键字的情况下调用异步函数吗?

eslint Parsing error: Unexpected token =

没有找到 `React-fishhook` 的 podspec

Yarn 在哪里存储离线包?

error TS2300: Duplicate identifier 'RequestInfo'

如何在我的 React Native Android 应用程序中显示当前的 CodePush 版本标签?

如何在react-native中设置 FlatList 的刷新指示器?

React Native 检测点击 View

加载远程图像失败后加载本map像

如何在 React Native 中重复图案图像以创建背景?

ExpoKit 和 React Native 元素的区别

React-native google 登录给开发人员错误

无法运行 jetifier React Native