Передача параметров с несколькими одинаковыми значениями в React-select - PullRequest
0 голосов
/ 13 февраля 2019

Ниже приведен фрагмент вызова меню «Выбор»:

import Select from 'react-select';

const SelectMenu = (props) => {
  const { options, defaultValue, onChange, name, label } = props;
  return (  
      <Select
        options={options}
        defaultValue={defaultValue}
        onChange={onChange}
        name={name}
        id="search-select"
      />
  );
};

Мой объект параметров выглядит следующим образом:

TestObj: [
  {
    label: 'Test 1',
    value: 3.49
  },
  {
    label: 'Test 2',
    value: 3.99
  },
  {
    label: 'Test 3',
    value: 3.89
  },
  {
    label: 'Test 4',
    value: 3.99
  },
  {
    label: 'Test 5',
    value: 0
  }
]

Потому чтоиз-за того, что два варианта имеют одинаковое значение, я получаю этот эффект:

enter image description here

Как видно из теста 2 и 4, разделяющих одно и то жезначение, которое они оба показывают как выбрано.

Есть ли способ, при котором, сохраняя те же значения, я могу иметь это, чтобы он только выбирал фактическую выбранную опцию?

1 Ответ

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

Способ react-select по умолчанию проверяет, выбрано ли значение, путем извлечения фрагмента value и сравнения его с выбранным (массив объектов с ключом значения.)

Использование isOptionSelected Вы можете переопределить используемую стратегию:

isOptionSelected={(option, selectValue) => selectValue.some(i => i === option)}

Это более или менее то, как работает внутренняя функция без извлечения части value, и вместо этого сравнивает весь объект.

...