В большинстве случаев вам, вероятно, не нужно заменять полный компонент Option.Если вы хотите остаться с той же общей структурой и внешним видом и возможностями Option, но хотите отобразить несколько блоков текста, или изображение, или какую-то другую специальную обработку для тела каждого параметра, есть более простой способ.way.
Для использования formatOptionLabel
рендера.
import React from "react";
import ReactDOM from "react-dom";
import Select from "react-select";
const options = [
{ value: "Abe", label: "Abe", customAbbreviation: "A" },
{ value: "John", label: "John", customAbbreviation: "J" },
{ value: "Dustin", label: "Dustin", customAbbreviation: "D" }
];
const formatOptionLabel = ({ value, label, customAbbreviation }) => (
<div style={{ display: "flex" }}>
<div>{label}</div>
<div style={{ marginLeft: "10px", color: "#ccc" }}>
{customAbbreviation}
</div>
</div>
);
const CustomControl = () => (
<Select
defaultValue={options[0]}
formatOptionLabel={formatOptionLabel}
options={options}
/>
);
ReactDOM.render(<CustomControl />, document.getElementById("root"));
https://codesandbox.io/embed/reactselect-formatoptionlabel-bde1q
https://react -select.com / props - поиск в форматеOptionLabel