Hey Leute Ich habe ein Problem mit Abruffunktionen in meiner ersten Reaktion js App definiert.Fetch-Methode ist nicht mit ES6 fetch in React
Das ist die Struktur meines Projekts:
hello-world
-- app
-- components
-- main.jsx
-- node_modules
-- public
-- build.js
-- index.html
-- package.json
Dies ist, was ich mit NPM installiert haben:
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']
}
}
]
}
};
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, wo ich die UI bauen:
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, um es auszuführen (Methode holen nicht definiert ist) versagt Ich habe auch checked this related post ES6 `fetch is undefined` und ich habe den Import ohne Erfolg aufgenommen. Ich habe auch es6-promise importiert, aber es scheitert auch.
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.
, warum Sie nicht mit 'Import Import holen holen von 'isomorph-Fetch';' statt 'Import 'isomorph-Fetch';'? –
Als Nebenbemerkung scheinen Sie die geschweiften Klammern für das Objektliteral zu verpassen, das Sie als zweites Argument für den Aufruf 'fetch()' übergeben. Es sollte 'fetch ('xxx/people', {methode: 'get', headers: {'token': 'xxx'}});' – saadq
Nicht sicher sein, dass Sie alle node_module in der Zeile ausschließen möchten; ausschließen:/(node_modules | bower_components) /, –