Ich versuche, von db-models zu ListView zu holen. Hier ist mein Code:Reactive Native fetch von db-models
export default class todoDB extends Component {
constructor(props) {
super(props);
this.state = {
dataSource : new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2})
};
}
componentDidMount() {
this.fetchData();
}
fetchData() {
DB.users.get_all(function(result) {
let data = [];
for(let i = 1; i <= result.totalrows; i++) {
data.push(result.rows[i]);
}
this.setState({
dataSource: dataSource.cloneWithRows(data),
})
});
}
render() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderList}
/>
);
}
renderList (item) {
return (
<View>
<Text>{item.age}</Text>
</View>
);
}};
Nach dem Ausführen habe ich keinen Fehler oder keine Ausgabe, nur leerer Bildschirm. ich mit
- "reagieren": "15.4.2",
- "reagieren-native": "0.40.0"
- "reagieren-native-db-Modelle": „^ 0,1. 3"
ist '' 'this''' innerhalb der Funktion (Ergebnis), immer noch an die Klasse gebunden? –
Ich glaube, Sie haben einen Fehler in 'fetchData()', im 'setState' sollte es' dataSource: this.state.dataSource.cloneWithRows (Daten) ' – kuby
@kuby Ich denke, Sie haben Recht, aber dann sollte er verwenden '' 'prevState''' Beispiel:' '' this.setState ((prevState, reps) => {}) '' '(https://facebook.github.io/react/docs/react-component.html# setstate) –