React-select:如何关闭面板?
React-select: how to close panel?
我有一个带有自定义选项组件的 react-select 实例。当我 select 一个选项时,面板不会关闭。我必须在 select 之外单击才能实现。我可以使用任何类型的全局道具吗?例如在 Reakit 中有 popover.hide()。当控制台记录道具时,我在 React-select 中没有看到类似的东西。
这是我的代码:
const CustomOption = ({children, onSelect, ...props}) => {
return (
<div>
{children}
<Chip
label="SELECT ME"
onClick={() => onSelect(props.data)}
/>
</div>
);
};
const MySelect = ({onSelect) => {
const customOption = {
Option: ({ children, ...props }) => <CustomOption {...{children, onSelect, ...props}} />};
return (
<Select
isClearable={true}
options={availableChoices}
components={customComponents}
/>
);
};
谢谢!
handleInputChange = input => {
this.setState({ open: !!input });
}
<Select
onInputChange={this.handleInputChange}
menuIsOpen={this.state.open}
/>
这里是解决方法:当你在React中使用自定义组件时-Select,你也需要传递ref。所以:
const CustomOption = ({children, onSelect, innerRef, innerProps, ...props}) => {
return (
<div ref={innerRef} {...innerProps}>
{children}
<Chip
label="SELECT ME"
onClick={() => onSelect(props.data)}
/>
</div>
);
};
const MySelect = ({onSelect) => {
const customOption = {
Option: ({ children, innerRef, innerProps,...props }) => <CustomOption {...{children, onSelect, innerRef, innerProps, ...props}} />};
return (
<Select
isClearable={true}
options={availableChoices}
components={customComponents}
/>
);
};
我有一个带有自定义选项组件的 react-select 实例。当我 select 一个选项时,面板不会关闭。我必须在 select 之外单击才能实现。我可以使用任何类型的全局道具吗?例如在 Reakit 中有 popover.hide()。当控制台记录道具时,我在 React-select 中没有看到类似的东西。
这是我的代码:
const CustomOption = ({children, onSelect, ...props}) => {
return (
<div>
{children}
<Chip
label="SELECT ME"
onClick={() => onSelect(props.data)}
/>
</div>
);
};
const MySelect = ({onSelect) => {
const customOption = {
Option: ({ children, ...props }) => <CustomOption {...{children, onSelect, ...props}} />};
return (
<Select
isClearable={true}
options={availableChoices}
components={customComponents}
/>
);
};
谢谢!
handleInputChange = input => {
this.setState({ open: !!input });
}
<Select
onInputChange={this.handleInputChange}
menuIsOpen={this.state.open}
/>
这里是解决方法:当你在React中使用自定义组件时-Select,你也需要传递ref。所以:
const CustomOption = ({children, onSelect, innerRef, innerProps, ...props}) => {
return (
<div ref={innerRef} {...innerProps}>
{children}
<Chip
label="SELECT ME"
onClick={() => onSelect(props.data)}
/>
</div>
);
};
const MySelect = ({onSelect) => {
const customOption = {
Option: ({ children, innerRef, innerProps,...props }) => <CustomOption {...{children, onSelect, innerRef, innerProps, ...props}} />};
return (
<Select
isClearable={true}
options={availableChoices}
components={customComponents}
/>
);
};