0
Я работаю с модулем node-native-db-models. У меня 3 строки в моей модели базы данных. => (title | privateid | action)React Native Listview из db-моделей?
Я теряю 2 дня для этой тренировки. Я хочу перечислить все записи из базы данных. Что не так?
var Download = React.createClass({
getInitialState: function() {
return {
dataSource: new ListView.DataSource({
rowHasChanged: (row1, row2) => row1 !== row2,
})
};
},
componentDidMount: function() {
this.fetchData();
},
fetchData: function() {
DB.downloads.get_all(function(result) {
var data = [];
for(var i = 1; i <= result.totalrows; i++) {
console.log(result.rows[i]);
data[i-1] = result.rows[i];
this.setState({
dataSource: dataSource.cloneWithRows(result.rows[i]),
loaded:false,
})
}
});
},
render: function() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderTrack}
style={styles.listView}/>
);
},
renderTrack: function (track) {
return (
<View>
<Text>{track.title}</Text>
</View>
);
}
});
Может быть, вы могли бы дать нам больше идеи, где она ушла на юг. Получаете ли вы что-нибудь из «DB.downloads.get_all» (функция (результат) »? Что произойдет, если вы выполните console.log (результат)? Я думаю, что это ... dataSource.cloneWithRows (result.rows [i]) должен быть таким ... 'dataSource.cloneWithRows (data)' и то, как вы строите массив данных, тоже выглядит нечетным. По крайней мере, это не должно быть 'data.push (results. row [i]) '? Это предполагает, что' console.log (result.rows [i]); 'возвращает объект. Надеюсь, что это поможет, но больше информации действительно поможет мне помочь –
@Chris, console.log (result) работает хорошо. console.log (data) и console.log (result.rows [i]) работают хорошо в функции «для», но setState не работает в функции «для». когда я делаю внешний «для», его возвращающий «undefineded»: | –
Кажется, что сейчас это происходит много. Посмотрите, поможет ли это вам ... http://stackoverflow.com/questions/33426760/react-native-listview-not-updating-on-data-change/33428564?noredirect=1#comment54667379_33428564 –