5

在 React Native 应用程序中添加节点模块isomorphic-fetch(版本:^2.2.1)后,我收到Can't find variable: self.
在这里,我附上了一个截图。

在此处输入图像描述

该错误是从位于 node_modules > isomorphic-fetch > 的文件中抛出的fetch-npm-browserify.js
以下是该文件的代码。

// the whatwg-fetch polyfill installs the fetch() function
// on the global object (window or self)
//
// Return that as the export for use in Webpack, Browserify etc.
require('whatwg-fetch');
module.exports = self.fetch.bind(self);
4

3 回答 3

6

@Nirav Dangi,按新建处理-npm-react.js 的方式在我的项目里面没有工作;我这样的方式,是直接修改文件,node_modules > isomorphic-fetch > fetch-npm-browserify.js的返回:

谷歌翻译:@Nirav Dangi,按照我的项目中的新方式 fetch-npm-react-native.js 不起作用;我这里是处理直接修改,node_modules> isomorphic-fetch> fetch-npm-browserify.js 文件返回:

var globalObject = typeof self === "undefined" ? global : self;
module.exports = globalObject.fetch.bind(globalObject);
//module.exports = fetch;
于 2016-06-20T08:24:39.757 回答
2

我已经在这个答案的帮助下解决了这个问题,
https://github.com/matthew-andrews/isomorphic-fetch/pull/80

为导出 React Native 的 fetch() polyfill 的 React Native 指定一个单独的入口点。


  1. 创建一个名为fetch-npm-react-native.js. 将此文件放在该node_modules > isomorphic-fetch位置。
  2. 将这行代码添加module.exports = fetch;到 fetch-npm-react-native.js 文件中。
  3. 转到文件node_modules > isomorphic-fetch > package.json。在package.json文件中,添加"main": "fetch-npm-node.js",一行代码。
  4. 打开终端,转到应用程序目录并写入npm install
  5. 重新加载应用程序,然后就可以了...


当然,这要归功于Jou

于 2016-05-31T11:15:37.220 回答
0

我遇到了同样的问题,其他解决方案对我不起作用。

我所做的是替换

import 'isomorphic-fetch'

有了这个:

import 'cross-fetch'

这是基于以下内容: https ://github.com/matthew-andrews/isomorphic-fetch/issues/125

于 2018-12-17T11:45:06.877 回答