React Native Error - 无法找到变量:self

时间:2016-05-31 11:15:37

标签: node.js react-native isomorphic-fetch-api

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

enter image description here

从位于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);

3 个答案:

答案 0 :(得分:6)

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

  

谷歌翻译:   @Nirav Dangi,按照新方式fetch-npm-react-native.js在我的项目中没有工作;我在这里处理直接更改,node_modules>同构取> fetch-npm-browserify.js文件返回:

var globalObject = typeof self === "undefined" ? global : self;
module.exports = globalObject.fetch.bind(globalObject);
//module.exports = fetch;

答案 1 :(得分:2)

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

  

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


  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. 打开Terminal,GoTo应用程序目录并编写npm install
  5. 重新加载应用程序,然后开始......

  6. 当然,归功于Jou

答案 2 :(得分:0)

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

我要做的是替换

import 'isomorphic-fetch'

与此:

import 'cross-fetch'

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