Fetch-Methode ist nicht mit ES6-Fetch in React @ definier
hey guys ich habe ein problem mit fetch funktionen in meiner ersten js app reagieren.
Dies ist die Struktur meines Projekts:
hello-world
-- app
-- components
-- main.jsx
-- node_modules
-- public
-- build.js
-- index.html
-- package.json
Das habe ich mit npm installiert:
npm install react react-dom babel-core babel-loader babel-preset-es2015 babel-preset-react webpack --save-dev
npm install --sav,e 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']
}
}
]
}
};
package.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, in der ich die Benutzeroberfläche erstelle:
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, es über den Browser auszuführen, schlägt dies fehl (Abrufmethode ist nicht definiert ES6 `fetch is undefined` und ich habe den Import ohne Erfolg aufgenommen. Ich habe auch den es6-Promise-Import eingeschlossen, aber er schlägt auch fehl.
Was mache ich falsch? Ist es ein Konfigurationsproblem oder was? Wenn ich 'npm run build' starte, gibt es keinen Fehler und die build.js scheint in Ordnung zu sein.