Ich versuche, einen Ajax-Aufruf mit einem React-Container (rein um die Daten zu holen und es an seine Kinder weitergeben), aber ich bekomme nichts.Daten nicht angezeigt, wenn eine Ajax-Anfrage in React
Stattdessen erhalten Sie die folgenden Fehler:TypeError: Cannot read property 'map' of undefined
. Was im Grunde sagt mir, dass die users
entweder leer oder noch nicht definiert ist, oder?
Im Moment folge ich der folgenden Struktur UserListContainer
(holt die Daten) =>UserList Component
(zeigt die Daten als eine Stütze).
Userlist Container
// Container responsible only to fetch User data
import React from 'react';
import UserList from '../../ui/components/users/userList.jsx';
export default class UserListContainer extends React.Component {
constructor(props) {
super(props);
this.state = {
users: []
}
}
componentDidMount() {
$.ajax({
// url: "../../users/users.json",
url: "https://gist.githubusercontent.com/dantesolis/267a298f3d6ac524bc2a7d80960a16b5/raw/7929bb23f1757b85adcead4eed3023cd3c7453df/users.json",
dataType: "json",
success: function(users) {
this.setState({users: users});
}.bind(this)
});
}
render() {
// const usr = this.props.user;
// let usrs = users_mockup ? users_mockup : this.props.users;
return (
<UserList users={this.state.users} />
);
}
}
Userlist Component
import React from 'react';
import User from '../users/user.jsx';
// import { Link } from 'react';
export default class UserList extends React.Component {
constructor(props) {
super(props);
}
renderUser({name, _id}) {
return <li>{_id}-{name}</li>
}
render() {
return (
<div className="main">
<ul>{this.props.users.map(renderUser)}</ul>
</div>
);
}
}
Hilfe sehr geschätzt wird. Danke
Gonzales, immer noch das gleiche Problem. Ich würde gerne sehen, was innerhalb dieser Benutzervariable ist, aber kann nicht ein 'console.log' zu arbeiten – intercoder
Ich ersetzte die URL mit der gleichen JSON [ohne den Kommentar in der ersten Zeile] (https://gist.githubusercontent.com/ dgonz64/c296dd465b91dd09ff65e1b5aeec66f8/roh/895edcadc3796c42932b2ecb266d7fc845f02214/test-another-json.json) und es funktioniert (ich bekomme die Objekte). Sie können versuchen, indem Sie "Fehler" -Rückruf zu "$ .json" hinzufügen, um zu sehen, ob in Ihrer Umgebung oder Ihrem Setup ein Problem vorliegt. Siehe [hier] (http://api.jquery.com/jquery.ajax/). –
holen Sie die Daten über 'curl' oder wie? Ich bekomme es über 'curl', aber nicht über meine react-App. Danke für den Link. Lass mich mal sehen. – intercoder