Я пытаюсь перечислить элементы базы данных Firebase в режиме реального времени в моем React Native ListView. Однако со следующим кодом я получаю сообщение об ошибке, говорящее, что «неопределенный не является конструктором», когда я инициализирую состояние dataSrouce в конструкторе. Что я должен сделать, чтобы заставить его работать? Спасибо.
constructor(props) {
super(props);
this.state = {
dataSource: new ListView.DataSource({rowHasChanged: (row1, row2) => row1 !== row2})
};
this.itemsRef = this.props.firebaseApp.database().ref();
}
componentDidMount() {
this.listenForItems(this.itemsRef);
}
renderItem(item) {
return (
<TouchableHighlight>
<View>
<Text>{item.name}</Text>
</View>
</TouchableHighlight>
)
}
listenForItems(itemsRef) {
itemsRef.on('value', snap => {
var items = [];
snap.forEach((child) => {
items.push({
name: child.val().name,
description: child.val().description,
dateID: child.val().dateID,
schema: child.val().schema,
_key: child.key
});
});
this.setState({
dataSource: this.state.dataSource.cloneWithRows(items)
});
});
}
render() {
var TouchableElement = TouchableHighlight;
if (Platform.OS === 'android') {
TouchableElement = TouchableNativeFeedback;
}
return (
<View style={styles.container}>
<ListView
datasource={this.state.dataSource}
renderrow={this.renderItem.bind(this)} />
</View>
);
}
datasource
иrenderrow
должны быть в верблюжьем корпусе, например:dataSource
иrenderRow
в<ListView dataSource={...} renderRow={...}
- person Ivan Chernykh   schedule 04.12.2016