Ich versuche, eine TouchableHighlight-Komponente zu einer Zeile in einer Listenansicht hinzuzufügen.Reagieren Sie nativ. Kontext in der berührbaren Highlight auf der Presse zu verlieren.
Die onPress-Funktion verursacht einen undefinierten Fehler im folgenden Code. Es funktioniert außerhalb der Listenansicht.
Ich vermute, das ist, weil ich den Kontext von this
verlieren, aber nicht sicher, wie zu beheben. Wer kann helfen?
export default class ConversationsList extends Component {
constructor(props) {
super(props);
this._handleChangePage = this._handleChangePage.bind(this);
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
dataSource: ds.cloneWithRows(Coversations.chats)
};
}
_handleChangePage(chat) {
this.props.navigator.push({
title: 'foo',
component: Chat,
passProps: {
chat: chat
}
});
}
renderRow(chat){
return (
<View>
<TouchableHighlight onPress={() => this._handleChangePage.bind(this, chat) }>
<View>
/* more content removed */
</View>
</TouchableHighlight>
</View>
);
}
render() {
return (
<View style={styles.container}>
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow}
/>
</View>
);
}
}
Ich vermute auch, dass ich nicht wirklich Dinge zu tun, auf diese Weise werden soll, dass meine Komponente anders strukturiert sein soll, so ist es den Presse-Handler als Stütze vielleicht übergeben. Jeder Rat geschätzt.