реагировать на нативную передачу данных от родителя к дочернему модальному - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть FlatList, отображаемый вместе с ListItem, так что для onPress определенной строки я могу получить эти данные внутри моего компонента ListTrips.Как показано ниже в моем console.warn, он напечатает данные выбранного элемента.

Компонент A

 import Component B from ...
 ....
  toggleModalConfirmTrip = item => {
console.warn(item);
// this.props.navigation.navigate('SelectedTrip', { item });

if (this.ModalConfirmTrip) {
  this.ModalConfirmTrip.toggleModal();
}
};


 <ListItem
 onPress={() => this.toggleModalConfirmTrip(item)}
 ....

Пока внутри моего ModalConfirmTrip.js я не могучтобы получить доступ к элементу.У меня вопрос, как я могу получить к нему доступ внутри компонента B?Я попытался поиграть с реквизитом и состоянием, но, похоже, не могу понять это правильно.

Компонент B

export default class ModalConfirmTrip extends Component {
constructor(props) {
super(props);
this.state = {
  locationFrom: '',
  locatonTo: '',
  isVisible: false,
  id: null,
 };
}

toggleModal = () => {
this.setState({ isVisible: !this.state.isVisible });
 };

// API Call to update trip to active



render() {
const { isVisible, item } = this.state;

console.warn('Modal', this.state);
console.warn(this.props);

return (
  <View style={styles.container}>
    <Modal
      onBackdropPress={() => {
        this.toggleModal();
      }}
      isVisible={isVisible}
      hideModalContentWhileAnimating
    >
      <View style={styles.modalViewContainer}>
        <Text style={styles.title}>{this.state.item}</Text>

1 Ответ

0 голосов
/ 26 ноября 2018

Нашли решение!

Итак, вы должны передать элемент в качестве реквизита в Компоненте A

    <ModalConfirmTrip
      ref={ref => {
        this.ModalConfirmTrip = ref;
      }}
      item={this.state.item}
    />

Также отметим, что вы не можете передать объект массива, поэтому я просто передалИдентификатор поездки.Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...