React select - разные метки для выпадающего списка и для поля ввода - PullRequest
0 голосов
/ 18 апреля 2020

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

Например, если я иметь следующий объект:

{label: "David Smith", selectLabel: "Dave",  value: 1}

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

Говоря «по умолчанию», я имею в виду, есть ли где-нибудь опора или что-то, что позволило бы мне указывать значения для выпадающего списка и поля ввода отдельно?

Так что в основном я ищу что-то подобное :

enter image description here

и после выбора я хочу, чтобы в поле ввода отображался «Дейв» (а не «Дэвид Смит»):

enter image description here

1 Ответ

1 голос
/ 18 апреля 2020

Вы можете использовать formatOptionLabel для достижения этого результата.

<Select
   name="color"
   options={colourOptions}
   formatOptionLabel={(option, { context }) => {
     /* context can be either `menu` or `value`
        menu - dropdown
        value - value displayed
     */
     return context === 'menu' ? option.label : option.color;
   }}
/>

Codesandbox

Документы

...