Как получить значение и название ярлыка от React Native Picker? - PullRequest
0 голосов
/ 04 июня 2018

В моем собственном проекте по реагированию у меня есть средство выбора, которое позволяет пользователю фильтровать сотрудников по филиалам.Я получил название метки и значение из моей базы данных.Теперь я могу получить идентификатор филиала из значение выбора и отфильтровать сотрудников по филиалам по этой ссылке http://192.168.10.60:8888/customerfeedback/public/api/staff?pId=.

Моя проблема в том, что я хочуобновите мое значение state , чтобы показать пользователю, какую ветку они выбрали вместо отображения id .Как я могу получить имя метки выбора и обновить его до моего состояния?

Вот мой код:

    <PickerIOS
     style={{ flex: 1 }}
     selectedValue={this.state.pickerSelected}
     onValueChange={(value, index) => this.onPickerValueChange(value, index)}
    >
    {branches.map(branch =>{
      return (
         <PickerIOS.Item key={branch.id} label={branch.name} value={branch.id}/>
    );
    })}
   </PickerIOS>

Теперь я могу получить значение и индекс, ноЯ хочу получить индекс из моей базы данных вместо индекса массива.

onPickerValueChange = (value, index) => {
    this.setState(
      {
        pickerSelected: value
      },
      () => {

        console.log(value, index);

      }
    );
}

Спасибо за помощь.

Ответы [ 2 ]

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

Наконец-то я могу исправить проблему сейчас.Я знаю, что это не очень хорошее решение, но, по крайней мере, оно сработало так, как я хочу сейчас :)

constructor(props) {
  super(props);
  pickerSelected: '',
  defaultSelected: 'Select branch's name',
}

и вот как я это сделал, чтобы обновить мои состояния

onPickerValueChange = (value) => {
    const { branches } = this.state;
    let branchName = branches.find(branch => branch.id === value);
    this.setState(
      {
        pickerSelected: value,
        defaultSelected: branchName.name
      }
    );
}

Надеюсь, что это может помочь другим людям, которые сталкиваются с той же проблемой:)

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

Используйте индекс, чтобы получить элемент массива.

onPickerValueChange = (value, index) => {
this.setState(
  {
    pickerSelected: value
  },
  (name, index) => {

    console.log(branches[index]);

  }
 );
}
...