键盘不再工作,因为您错过了Input
打开Menu
.
ValueContainer
当没有选择值时有两个对象:
当您选择一个(或多个)值时,它会更改为:
SingleValue
或者 MultiValue
Input
在您之前的示例中,您正在删除这两个。
要保留键盘功能,您需要保留Input
组件。以下代码是您的代码和期望的组合并保留了Input
组件:
const ValueContainer = ({ children, ...props }) => {
const { getValue, hasValue } = props;
const newChildren = _.cloneDeep(children);
const nbValues = getValue().length;
newChildren[0] = `${nbValues} items selected`;
if (!hasValue) {
return (
<components.ValueContainer {...props}>
{children}
</components.ValueContainer>
);
}
return (
<components.ValueContainer {...props}>
{newChildren}
</components.ValueContainer>
);
};
const options = [
{ label: "label 1", value: 1 },
{ label: "label 2", value: 2 },
{ label: "label 3", value: 3 },
{ label: "label 4", value: 4 }
];
function App() {
const components = { ValueContainer };
return <Select isMulti components={components} options={options} />;
}
活生生的例子。