javascript - react 选择 createFromSearch 显示附加叠加层

标签 javascript reactjs react-bootstrap react-select

我正在使用react-selectize组件来自定义下拉列表,它允许用户添加新选项。

         <Dropdown
            options={myOptions}
            value={selectedValue}
            onValueChange={value => {  
                    this.valueUpdated(emptyStringToNull(value));
            }}
            createFromSearch={this.createFromSearch}
         />

我的createFromSearch和onValueChange函数如下;

   createFromSearch: function(options, search){        
    if (search.length === 0 || (options.map(function(option){
        return option.label;
    })).indexOf(search) > -1)
        return null;
    else {
        return {'label': search, 'value': search};
    }
   },

   onValueChange: function(text) {
    // update the value in state
   },

除了这个小的 UI 问题之外,一切正常。单击后不久它就会显示重复的选项。

enter image description here

当我单击屏幕中的任意位置时,它会删除重复的停留并正确显示。谁能建议这是样式问题还是我需要做的任何其他事情?

最佳答案

我可以通过尝试多种方法来解决此问题。我重写了组件的 onValueChange 方法,并仅将值传递给实际的 onValueChange 方法,如下所示;

  const onValueChangeInDropdown = props => value => {
      if (value) {
         props.onValueChange(value.value);
      } else {
         props.onValueChange(null);
      }
 };

这会导致上述样式问题,因为组件无法找到 item.newOption 属性。因此,解决方案是在为选项列表添加新创建的项目时,将其添加为 item.newOption = 'true' 并将整个项目对象传递给 onValueChange 方法。

关于javascript - react 选择 createFromSearch 显示附加叠加层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41498237/

相关文章:

javascript - 坚持让 react 引导模式工作

javascript - Magento 网站变形,页面元素频繁散落

javascript - clientY 返回整个屏幕的像素 Y,而不是 div

reactjs - 仅从 Bootstrap 导入网格系统以进行 react

javascript - 如何渲染变量内的 JSX

reactjs - 如何在面板标题中访问 react-bootstrap 面板折叠状态?

javascript - 如何在 ipython/jupyter 笔记本中修改 reveal.js 幻灯片设置

javascript - Chrome 扩展程序 - 请求当前选项卡的可选权限

reactjs - 用 GO 编写的 gRPC 服务集合与 Javascript 客户端之间通信的最佳解决方案是什么?

html - 在 React Bootstrap 中居中对齐 NavItem