Ich habe Daten aus Firebase zu extrahieren und ich tat. Es wird in einer Listenansicht perfekt angezeigt. Aber jetzt muss ich sie in Karten von der Heimatbasis aus anzeigen. Dies ist der Code habe ich versucht https://github.com/GeekyAnts/NativeBase/issues/347, aber ich erhalte eine Fehlermeldung: nicht definiert ist kein ObjektKarten von Native Base dynamisch reagieren in nativen und Firebase
import CardItem from'./CardItem'
import {Container, Content, Card, Body, Title} from 'native-base';
export default class SixteenTab extends Component {
constructor(props) {
super(props);
this.itemsRef = this.getRef().child('docs/topics/topics_2016/');
}
componentDidMount() {
// start listening for firebase updates
this.listenForItems(this.itemsRef);
}
getRef() {
return firebaseApp.database().ref();
}
listenForItems(itemsRef) {
itemsRef.on('value', (snap) => {
var items = [];
snap.forEach((child) => {
items.push({
title: child.val().title,
_key: child.key
});
});
this.setState({
items: items
});
});
}
render() {
return (
<View>
<Card dataArray={this.state.items}
renderRow={(item) => this._renderItem(item)}>
</Card>
</View>
)
}
_renderItem(item) {
return (
<CardItem item={item}/>
);
}
}
CardItem Seite
class CardItem extends Component {
render() {
return (
<View style={styles.listItem}>
<Text style={styles.liText}>{this.props.item.title}</Text>
</View>
);
}
}
, dass der Code ist i verwendet, aber ich halte einen Fehler wie das Bild bekommen unten -> keine Idee bitte PS: alle Elemente wurden aus Firebase-Datenbank korrekt extrahiert, da ich sie in der Konsole
sehen könnennach dieser Zeile this.state = { items: [] };
im Konstruktor setzen, bekomme ich diese Warnung
wenn die zweite Methode von Irfan versucht, bekomme ich diese Warnung und nichts auf dem Bildschirm angezeigt werden
, das ist das letzte, das ich schrieb und immer noch nicht funktioniert
export default class SixteenTab extends Component {
constructor(props) {
super(props);
this.itemsRef = this.getRef().child('docs/topics/topics_2016/');
this.state = { items: null };
}
componentDidMount() {
this.listenForItems(this.itemsRef);
}
componentWillMount() {
this.setState({
items:[]
});
}
getRef() {
return firebaseApp.database().ref();
}
listenForItems(itemsRef) {
itemsRef.on('value', (snap) => {
var items = [];
snap.forEach((child) => {
items.push({
title: child.val().title,
_key: child.key
});
});
this.setState({
items: items
});
});
}
render() {
return (
<View>
<Content>
<Card>
{
this.state.items.map((item,index)=>{
return (
<CardItem key={index}>
<View>
<Text>{item.title}</Text>
</View>
</CardItem>
)
})
}
</Card>
</Content>
</View>
)
}
_renderItem(item) {
return (
<ListItem item={item}/>
);
}
Hallo Irfan, Danke, aber ich erhalte eine weitere Warnung jetzt .. überprüfen Sie bitte die edit i oben in der Frage gemacht und sorry für die Störung Sie – user3521011
Sie eindeutigen Schlüssel für CardItem Komponenten wie diese haben muss –
Irfan danke nochmal .. aber immer noch leere Seite .. sollte ich meine Frage bearbeiten und den ganzen Code posten? – user3521011