TouchableHighlightコンポーネントをリストビューの行に追加しようとしています。ネイティブに反応します。プレスのタッチ可能なハイライトでこれの文脈を失う。
onPress関数は、以下のコードで未定義のエラーをスローしています。これはリストビューの外で動作します。
私はthis
という文脈を失っているが、修正方法がわからないためと思われる。誰でも手伝うことができますか?
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>
);
}
}
はまた、私は本当に私のコンポーネントは異なる構造すべきであると、このようなことをやってすべきではないと思われるので、それはおそらく小道具としてプレスハンドラが渡されます。何かアドバイスをいただきました。