Ich versuche, eine JSON (Array von Filmobjekten) Einblick ListView-Komponente, aber erhalten Sie den Fehler: kann nicht lesen Eigenschaft KlonWithRows von undefined. Was genau mache ich falsch? Ich habe eine Menge Tutorials gefunden und alle verwenden hart codierte Daten und können nicht sehen, wie es verwendet wird, wenn die Daten aus einer Anfrage stammen. Hier ist mein Code:Anzeigen von JSON in einer ListView
constructor() {
super();
const ds = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 });
this.state = { dataSource: ds.cloneWithRows([]) };
}
componentWillMount() {
axios.get('https://www.omdbapi.com/?s=Batman&page=2')
.then(response => response.data)
.then(this.onAfterLoad)
.catch(this.manageError);
}
// We will update the state of the application so that images can render
onAfterLoad = (data) => {
this.setState({ dataSource: this.ds.cloneWithRows(data.Search) });
};
// If there is an error show error
manageError = (error) => {
Alert.alert('Failure fetching data');
console.error(error);
};
// Description: Render all the titles
// ------------------------------------------------------------------------------------
renderRow(rowData) {
console.log(rowData);
return <Movie key={rowData.imdbID} data={rowData} />;
}
// Description: Render everything to the screen
// ------------------------------------------------------------------------------------
render() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow}
/>
);
}