Ich verwende Redux, der ListView ist abonniert, die Konsolenprotokollmeldung wird angezeigt, aber der Bildschirm wird erst nach einem Warmladen aktualisiert. Irgendeine Idee, warum die ListView die neue Todo nicht auf dem Bildschirm zeichnen würde?ListView rendert nur nach dem Warmladen
render() {
var store = getStore();
var todos = store.getState().todos;
var dataSource = this.dataSource.cloneWithRows(todos);
console.log("Rendering: ", jtodos);
return (
<View>
<Text>Todos to do</Text>
<ListView
dataSource={dataSource}
renderRow={this.renderTodo}
style={styles.listView}/>
</View>
);
}
Ich habe mich verändert auch den Code
renderTodo(todo) {
console.log("Render:", todo);
return (
<View style={styles.container} key={todo.id}>
<View style={styles.details}>
<View style={styles.rightContainer}>
<Text style={styles.title}>{todo.text}</Text>
</View>
</View>
</View>
);
}
render() {
var store = getStore();
var todos = store.getState().todos;
console.log("Rendering: ", todos);
var dataSource = this.dataSource.cloneWithRows(todos);
return (
<View>
<Text>Todos to do</Text>
{todos.map(this.renderTodo)}
</View>
);
}
Die Konsolenprotokoll zeigt alle todos, darunter die neue, die erst nach einem heißen Reload-up wird zeigen ....
Warum zeigt der Bildschirm das Todo nicht an?
Rendering: [Object, Object, Object, Object, Object, Object, Object]
Render: Object {text: "fghf", id: 1, completed: false}
Render: Object {text: "fghfbhhg", id: 2, completed: false}
Render: Object {text: "fghfbhhggfjg", id: 3, completed: false}
Render: Object {text: "fghfbhhggfjg", id: 4, completed: false}
Render: Object {text: "fghfbhhg", id: 5, completed: false}
Render: Object {text: "fghfbhhgkkkk", id: 6, completed: false}
Render: Object {text: "f", id: 7, completed: false}
Keine von diesen auf dem Display bis zu einem heißen Nachladen angezeigt. Alle nach einem Warmladen hinzugefügten Dateien werden erst beim nächsten Warmladen angezeigt.
seltsam reagieren. Also rendert alles bis auf das letzte Objekt "(Text: f, id: 7, ...)"? – James111
Eigentlich nichts rendert, bis das heiße Nachladen passiert, dann rendert alles. ABER die Konsole zeigt sie alle Rendering die ganze Zeit. – boatcoder
Worauf bezieht sich 'this.dataSource' in Ihrer' render' Methode? –