Передача значения из лайтбокса родителю - PullRequest
0 голосов
/ 01 июня 2018

Я создаю экран профиля для пользователя в моих приложениях.Я использую лайтбокс из React-Native-Navigation от wix для выполнения редактирования профиля.Таким образом, пользователь нажимает на touchableopacity, и появляется всплывающее окно, и пользователь вводит новую информацию и сохраняет ее.Итак, мне интересно, возможно ли, если я хочу передать значение textinput из лайтбокса родителю (profile.js), чтобы я мог установить его в profile.js?

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Я бы также сказал передать указатель функции родителя на ребенка как реквизит (как видно на сайте React).Хотя некоторые люди предпочитают использовать источник событий.Мне на самом деле очень интересно узнать мнение других разработчиков по этому поводу.

Срывает ли с себя поток на почве StackOverflow для эпического понижающего голосования?

0 голосов
/ 01 июня 2018

Да, это возможно.Вам нужно будет отправить данные в качестве реквизита родителю.Если вы не сделали этого раньше, это может показаться немного сложным, но вы получите это.

От родителя:

<LightboxComponent 
  userData={this.handleUserData(data)}
/>

handleUserData(data) {
  /* Do something with the data here */
}

От ребенка:

Для отправки данных вам нужно установить событие onChange или подобное на входе, который вы хотите захватить, например:

<input name="user-name" onChange={ (e) => this.props.userData(e.target.value) }

Это заставит входные данные от дочернего элемента быть отправленными родительскому элементу.Каждое изменение будет вызывать повторный рендеринг затронутых компонентов.

Если ваше приложение жалуется на невозможность правильно установить setState, тогда вам нужно связать this в конструкторе родителей следующим образом:

this.handleUserData = this.handleUserData.bind(this);
...