Есть ли способ вызвать метод, когда первый элемент выбран в React Native Picker? - PullRequest
2 голосов
/ 16 марта 2020

РЕДАКТИРОВАТЬ

functionToRedirect(itemValue) - это функция, которая вызывается при выборе элемента в средстве выбора и перенаправляет на новый экран, предварительно заполняя некоторые значения на экране на основе 'itemValue'.

Однако functionToRedirect(itemValue) не вызывается, когда выбрано то же значение, которое, как я полагаю, связано с тем, что значение не изменилось и, следовательно, onValueChange() не будет запущено.

Есть ли способ для меня вызвать functionToRedirect(itemValue), даже если значение не изменилось (т.е. когда выбрано начальное значение), чтобы попытаться перенаправить на новый экран?

<Picker
  style={styles.picker}
  itemStyle={styles.pickerItem}
  mode={"dialog"}
  selectedValue={this.props.value}
  onValueChange={(itemValue) => {
    functionToRedirect(itemValue);
  }
}>
  {this.state.pickerItems}
</Picker>

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Как насчет использования пользовательского выбора? Nativebase , пользовательская реализация компонентов пользовательского интерфейса ReactNative может предоставить вам индивидуальный вид компонентов. Они реализовали Picker , используя RN Picker в качестве обертки вокруг плоского списка предметов, открываемых в модальном окне, через которое вы можете выбирать предметы соответственно.

0 голосов
/ 17 марта 2020

Решение, к которому я пришел, состояло в том, чтобы передать selectedValue значение NULL так, чтобы первым отображаемым параметром в раскрывающемся меню был заголовок раскрывающегося списка.

Решение выглядит следующим образом:

<Picker
  style={styles.picker}
  itemStyle={styles.pickerItem}
  mode={"dialog"}
  selectedValue={null}
  onValueChange={(itemValue) => {
    this.props.onChange(itemValue)
  }}
>
  {this.state.pickerItems}
</Picker>

, которое показывает название сборщика в качестве начального значения раскрывающегося списка, как показано ниже image of dropdown showing title instead of first element

...