Relativ neu zu React Native; und im folgenden Beispielcode möchte ich eine Liste mit einer gebundenen onPress
Funktion erstellen. Leider wird beim Drücken eines Gegenstandes immer der letzte Gegenstand gedruckt, der in diesem Fall "Suze" ist.RN-Elemente: Bind-Liste Onpress
import { List, ListItem } from 'react-native-elements';
...
onPress(name){
console.log(name);
}
renderPerson(person) {
return (< ListItem
key={person._id}
title={person.name}
onPress={() => this.onPress(person.name)}
/>)
}
renderPeople =() => {
people = [{"_id": 1, "name": "Eric"},
{"_id":2, "name": "Paul"},
{"_id":3, "name": "Suze"}]
return people.map((p) => (
this.renderPerson(p)
))
}
render() {
return (
<List>
{this.renderPeople()}
</List>
)
}
Update
inklusive Konstruktor:
constructor(props) {
super(props);
this.renderPerson = this.renderPerson.bind(this);
this.renderPeople = this.renderPeople.bind(this);
}
Aber immer noch das letzte Element ist
gedruckt versucht
Try 'people.map (p => this.renderPerson (p))'. Entfernen Sie Ihre 'return' vor' people.map' – Dan
Listenelemente werden nicht gerendert – API
In Ihrem Konstruktor haben Sie 'bind' für Ihre Funktionen verwendet? 'this.renderPerson = this.renderPerson.bind (dies) this.renderPeople = this.renderPeople.bind (this)' – Dan