Как связать событие "onPress" с кнопкой, TouchableOpacity и т. Д., Которая его сгенерировала?
В моем проекте React Native с использованием NativeBase я хотел бы создать серию Buttons
или же TouchableOpacities
,
Это означает, что я не хочу, чтобы у каждого был отдельный onPress
обработчик, но один общий.
Но когда я смотрю на то, что передается onPress
В обратном вызове, похоже, нет какого-либо идентификатора или ссылки на компонент, который вызвал прессу, и я не могу найти такую вещь задокументированной.
Я что-то упускаю из виду? Есть ли другой метод, который каждый достигает той же цели? Или это на самом деле отсутствует функциональность?
2 ответа
Вы можете использовать свою функцию, как показано ниже:
_onPressButton = (id) = () => {
// do something with id
}
_keyExtractor = (item, index) => index;
_renderItem = ({item}) => (
<Button onPress={this._onPressButton(item.d)}>
...
</Button>
);
return (
<FlatList
data={data_array}
keyExtractor={this._keyExtractor}
renderItem={this._renderItem}
/>
);
Вы можете попробовать использовать ref
идентифицировать компонент
<Button ref={'loginButton'} onPress={this.onButtonPress()}>
Затем вы получаете доступ к нему с помощью this.refs['loginButton']
Надеюсь, поможет.