首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React-select:如何关闭面板?

React-select:如何关闭面板?
EN

Stack Overflow用户
提问于 2020-06-25 16:24:38
回答 2查看 1.3K关注 0票数 1

我有一个带有自定义选项组件的react-select实例。当我选择一个选项时,面板不会关闭。我必须在select之外单击才能实现。有没有什么全球道具可以让我使用?例如,在Reakit中有popover.hide()。当控制台记录道具时,我在React-select中没有看到任何类似的东西。

下面是我的代码:

代码语言:javascript
复制
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}
        />
  );
};

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-25 23:25:44

以下是解决方案:当您在React-Select中使用自定义组件时,还需要传递ref。所以:

代码语言:javascript
复制
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}
        />
  );
};

票数 0
EN

Stack Overflow用户

发布于 2020-06-25 17:26:20

代码语言:javascript
复制
handleInputChange = input => {
    this.setState({ open: !!input });
}

<Select
    onInputChange={this.handleInputChange}
    menuIsOpen={this.state.open}
/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62571021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档