TypeError:fetch不是React Native&Jest中的函数

Mih*_*ian 4 javascript jestjs react-native

我有一个React Native项目,它只包含使用新项目创建的示例Jest测试(他们只检查渲染是否适用于iOS和Android).

我的项目fetch用于其中一个组件中的网络请求.这在我运行应用程序时工作正常,但是当我运行测试时,它们会失败并显示以下错误消息:

TypeError:fetch不是函数.

谁知道发生了什么?

这是我的代码中使用的部分fetch:

export default class MainScene extends Component {

constructor(props) {
    super(props);
    this.renderRowView = this.renderRowView.bind(this);
}

onFetch(page = 1, callback) {

    var date = new Date();
    date.setDate(date.getDate() - 7);

    fetch(  url, {
        method: 'GET',
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        }
    })
    .then((response) => response.json())
    .then((responseJson) => {
        if (responseJson.response.pages <= page) {
            callback(responseJson.response.results, {
                allLoaded: true
            });
        } else {
            callback(responseJson.response.results);
        }
    })
    .catch((error) => {
        console.error(error);
    });
}}
Run Code Online (Sandbox Code Playgroud)

测试文件:

import 'react-native';
import React from 'react';
import Index from '../index.ios.js';
import renderer from 'react-test-renderer';

it('renders correctly', () => {
  const tree = renderer.create(
    <Index />
  );
});
Run Code Online (Sandbox Code Playgroud)

pac*_*hun 7

我刚才有同样的问题.将其添加到您的jest规范中.

import 'isomorphic-fetch';
Run Code Online (Sandbox Code Playgroud)