Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击iClearable图标(仅限移动设备)时,如何停止react select input下拉菜单的打开?_Javascript_Html_Reactjs_Dom Events_React Select - Fatal编程技术网

Javascript 单击iClearable图标(仅限移动设备)时,如何停止react select input下拉菜单的打开?

Javascript 单击iClearable图标(仅限移动设备)时,如何停止react select input下拉菜单的打开?,javascript,html,reactjs,dom-events,react-select,Javascript,Html,Reactjs,Dom Events,React Select,我把这个做得很简单,以说明我的问题 当我单击将isClearable添加到选择组件后出现的“x”图标时,它会清除选择并打开下拉列表。我不想打开下拉菜单,但我不知道如何停止它。有什么想法吗 这个问题只存在于移动浏览器上。clear功能在桌面浏览器上正常工作。要在移动设备上查看codesandbox,请打开Chrome devtools并单击“切换设备工具栏”按钮 编辑:因为我还没有收到回复(22小时),这里有一些更多的细节。最像我的问题。他们讨论了原因可能是由于react tap事件插件 我曾尝

我把这个做得很简单,以说明我的问题

当我单击将
isClearable
添加到选择组件后出现的“x”图标时,它会清除选择并打开下拉列表。我不想打开下拉菜单,但我不知道如何停止它。有什么想法吗

这个问题只存在于移动浏览器上。clear功能在桌面浏览器上正常工作。要在移动设备上查看codesandbox,请打开Chrome devtools并单击“切换设备工具栏”按钮

编辑:因为我还没有收到回复(22小时),这里有一些更多的细节。最像我的问题。他们讨论了原因可能是由于react tap事件插件

我曾尝试使用react fastclick软件包,因为我认为它可能是一个延迟点击(长按手机不会打开菜单)

我已经尝试在属性为
onClick={e=>{e.preventDefault();e.stopPropagation();}}的
Select
组件周围添加一个div

我尝试添加一个虚拟div,并在
Select
组件中的
onChange
事件末尾调用
document.getElementById(“虚拟”).focus()

编辑2:如果为
touchend
事件添加事件断点,请单击导致脚本暂停的“x”,然后按F8(恢复脚本),菜单将不会打开。一定发生了某种延迟点击。

检查


至少还不能很好地工作,它会提示您如何修改默认行为。

我有一个黑客解决方案。在
Select
组件中的
onChange
事件函数属性结束时,我在css中设置
指针事件:null
,持续50毫秒。如果有人知道一个不太老套的方法来做这件事,请让我知道

临时禁用=()=>{
const elementToDisable=document.getElementById('selectComponentID');
const wait=ms=>newpromise((r,j)=>setTimeout(r,ms))
setAttribute(“样式”,“指针事件:无”)
让prom=wait(50)。然后(()=>elementToDisable.setAttribute(“样式”,“指针事件:全部”))
}

假设你有这样的代码

<Select
    isClearable
    options={options}
    //..
/>

那你就和我一样了。 “isClearable”标志需要一个值

<Select
    isClearable={true}
    options={options}
    //..
/>


希望能有帮助。♥

尝试将此属性添加到选择组件:

openMenuOnClick={false} 

对我有用,希望对你也有用。

因为你添加了
menuIsOpen=false
下拉菜单在单击时不再打开。我仍然打算使用该功能,因此这并不能回答我的问题。