fetch-Methode ist nicht definiert mit ES6 Holen Reagieren

hey Leute ich habe ein Problem mit der fetch-Funktionen in meinem ersten reagieren js-app.

Dies ist der Aufbau meines Projekts:

hello-world
  -- app
     -- components
       -- main.jsx
  -- node_modules
  -- public
     -- build.js
     -- index.html
  -- package.json

Dies ist, was ich installiert über npm:

npm install react react-dom babel-core babel-loader babel-preset-es2015    babel-preset-react webpack --save-dev
npm install --save isomorphic-fetch es6-promise

Ich benutze webpack
webpack.config

module.exports = {
  entry: './app/components/main.jsx',
  output: {
    path: './public/',
    filename: "build.js",
  },
  module: {
    loaders: [
      {
        exclude: /(node_modules|bower_components)/,
        loader: 'babel',
        query: {
          presets: ['es2015', 'react']
        }
      }
    ]
  }
};

Paket.json

{
  "name": "hello-world",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "scripts": {
    "build": "webpack -w"
  },
  "author": "mannuk",
  "license": "MIT",
  "devDependencies": {
    "babel-core": "^6.14.0",
    "babel-loader": "^6.2.5",
    "babel-preset-es2015": "^6.14.0",
    "babel-preset-react": "^6.11.1",
    "react": "^0.14.8",
    "react-dom": "^0.14.8",
    "webpack": "^1.13.2"
  },
  "dependencies": {
    "es6-promise": "^3.3.1",
    "isomorphic-fetch": "^2.2.1"
  }
}

Dies ist die Datei, wo Baue ich die UI:

main.jsx

import React from 'react';
import ReactDOM from 'react-dom';
import 'isomorphic-fetch';
import 'es6-promise';

class Person extends React.Component {

  constructor(props){
    super(props);
    this.state = {people : []};
  }

  componentWillMount(){
    fetch('xxx/people',
      method: 'get',
      headers: {'token' : 'xxx'}
      )
      .then((response) => {
        return response.json()
      })
      .then((people) => {
        this.setState({ people: people })
      })
  }

  render(){
    return <div>
        <input type="text" value={this.state.people[0].name}></input>
      </div>
  }
}

ReactDOM.render(
  <Person/>,
  document.getElementById('container')
);

Wenn ich versuche, führen Sie es durch den browser, es schlägt fehl (fetch-Methode ist nicht definiert) ich habe auch überprüft, bezogenen Beitrag ES6 `fetch ist undefiniert` und ich habe den import ohne Erfolg. Ich habe auch enthalten es6-Versprechen import scheitert aber auch.

Was mache ich falsch? Ist es ein config problem oder was? Wenn ich 'npm führen Sie build' es gibt keine Fehler und die build.js scheint ok zu sein.

warum gehst du nicht importieren Holen mit import fetch from 'isomorphic-fetch'; statt import 'isomorphic-fetch';?
Als seitliche Anmerkung, Sie scheinen zu fehlen die geschweiften Klammern für die Objekt-literal, dass Sie vorbei sind wie eine zweite argument der fetch() nennen. Es sollte fetch('xxx/people', { method: 'get', headers: {'token' : 'xxx'} });
Nicht sicher, ob Sie ausschließen möchten alle node_modules in der Zeile ; löschen: /(node_modules|bower_components)/,
du hast Recht. Idk warum, wenn ich ausführen von npm führen Sie build nicht fehlschlägt, wenn ich die fehlenden geschweiften Klammern...

InformationsquelleAutor mannuk | 2016-09-26

Schreibe einen Kommentar