2017-03-07 12 views
3

を反応させるのにフェッチは、私はiOSとAndroid上で作品をレンダリングする場合は(彼らはちょうどチェック冗談は新しいプロジェクトで作成されをテストするだけのサンプルが含まれているネイティブプロジェクトに反応持た機能ではありません)。TypeError例外:ネイティブ&冗談

私のプロジェクトでは、いずれかのコンポーネントでネットワーク要求に対してfetchが使用されています。私はアプリを実行するとき、これは正常に動作しますが、私はテストを実行するとき、彼らは、このエラーメッセージで失敗:

TypeError: fetch is not a function.

誰もが何が起こっているのか知っていますか?

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); 
    }); 
}} 

アンテストファイル:

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 /> 
); 
}); 
+0

コードを表示する必要があります。これも助けになりますか? http://stackoverflow.com/questions/30954899/react-native-fetch-is-not-a-function – Matthias

+0

私がフェッチを使用する投稿コード。私は 'require'を使っていないので、私の問題は違うようです。 –

+0

'fetch'にはreact-nativeが付いていますが、nodeJSには含まれていません(これはJestを実行していると思われます)。テストのためにpolyfillをフェッチしてみてください –

答えて

4

は、私はちょうど同じ問題を持っていた

はここfetchを使用しています私のコードの一部です。あなたの冗談の仕様にこれを加えてください。

import 'isomorphic-fetch';