Как связать событие "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']

Надеюсь, поможет.

Другие вопросы по тегам