Вам необходимо использовать renderValue
опору из вашего Select
компонента, чтобы пользовательская визуализация выбранного вами значения была возможна.
Добавьте следующую строку в ваш Select
компонент
renderValue={value => currencies.find(el => el.value === value).label}
Вы можете проверить обновленную версию своей рабочей песочницы ЗДЕСЬ
Также вы можете проверить больше на Select
реквизит ЗДЕСЬ
LE: Обновление для точки 3
В вашем <DeleteIcon>
обработчике onClick
вам необходимо остановить дальнейшее распространение события. В функции handleDelete()
добавьте параметр event
и используйте метод e.stopPropagation()
.
const handleDelete = (e: React.ChangeEvent<HTMLInputElement>) => {
e.stopPropagation();
console.log("Delete");
};
И ваш компонент должен выглядеть следующим образом
<MenuItem key={option.value} value={option.value}>
<div>{option.label}</div>
<div>{option.action && <DeleteIcon onClick={handleDelete}/>}/div>
</MenuItem>
/>
Я также обновил песочницу с последней версией ЗДЕСЬ