【发布时间】:2019-08-13 19:07:18
【问题描述】:
我正在使用 react-select 并使用 formatOptionLabel 属性来格式化选项标签。每当我选择任何选项时,它都会显示在 Input 中,并且它也会获得该格式化标签
我尝试传递 selectedIcon 并在 onChange 事件中将其删除,并且确实有效,但为此我需要在每个选项中传递它并在每个 onChange 上删除。
这是handleValueChange
handleChange = (value) => {
const { selectedIcon, ...restFields } = value;
this.setState({
someKey: restFields
});
};
这是我用过的formatLabel函数
const formatLabel = (data, restFields) => {
if (restFields.selectValue[0].value === data.value) {
return (
<div>
{data.selectedIcon}{data.icon}{data.label}
</div>
)
} else {
return (
<div>
{data.icon}{data.label}
</div>
)
}
};
当菜单未打开时,有没有办法以不同的方式格式化所选值。而且我还需要对它们应用不同的样式。
例如:我想在选择值之前在选项菜单中显示✔️,当菜单关闭时,它应该只显示选择的值。
【问题讨论】:
-
您能提供一些视觉设计吗?
标签: reactjs select input options react-select