Давайте рассмотрим пример: вы обрабатываете свои быстрые ответы в массиве.
state = {
quickReplies: ['Reply 1', 'Reply 2', 'Reply 3', 'Reply 4'],
};
Вы можете отобразить их как:
{this.state.quickReplies.map(reply =>
<TouchableHighlight style={styles.quickReply} onPress={()=>this.onPress(reply)}>
<Text>{reply}</Text>
</TouchableHighlight>
)}
, где функция onPress
может быть:
onPress = (reply) => {
console.log(reply);
}
Также обратите внимание, что <Text>
из реагируют native также принимает опору onPress
. Вы можете легко использовать его, не оборачивая каждый элемент в <TouchableHighlight>
Поскольку вы уже знаете значение текста, так как вы его установили, вам, вероятно, следует просто передать его функции onPress
.
Это означает, что вы можете сделать что-то вроде:
onPress = (text) => () => {
console.log(text);
// do all the things that should happen when the text is pressed
}
Затем в вашем TouchableHighlight
передать значение. Это значение может быть из штата или жестко закодировано, как вы делали выше.
<TouchableHighlight style={styles.quickReply} onPress={this.onPress('Yes')}>
<Text>Yes</Text>
</TouchableHighlight>