реакции-выберите изменить имя поля параметров с ({значение: '', метка: ''}) на ({id: '', имя: ''}) - PullRequest
0 голосов
/ 06 февраля 2019

Есть ли способ изменить поля объекта опции?

Из моего BE API я получаю:

const items = [{ id: 1, name:'dropdown1'}, { id: 2, name:'dropdown2'}];

Так что теперь мне нужно переназначитьполя на value и label, было бы неплохо, если бы я мог установить эти поля динамически, может быть что-то вроде:

    <Select
      optionRemapping={{value: 'id', label: 'name'}}
      options={items}
    />

Или, может быть, я пропустил образец того, как людисделать это?

Выполнение приведенного ниже выглядит немного неправильно.

items.map((item) => {
  return { value: item.id, label: item.name };
});

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

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

<Select
    options={items.map(({ id, name }) => ({ value: id, label: name}))}
/>
0 голосов
/ 06 февраля 2019

Используйте getOptionLabel и getOptionValue реквизиты.

<Select
  getOptionLabel={option => option.name}
  getOptionValue={option => option.id}
  options={items}
/>

пример: https://codesandbox.io/s/kmoyw8q667

...