Javascript 防止在React中选择时关闭选择输入

Javascript 防止在React中选择时关闭选择输入,javascript,html,reactjs,Javascript,Html,Reactjs,如何防止元素在选择某个选项后自动关闭其下拉列表,即即使在进行选择后,我仍希望保持选项下拉列表打开 我已尝试在的onChange处理程序中调用事件.stopPropagation()和事件.preventDefault(),但都不起作用 是一把小提琴的基本组成部分。我想实现上面描述的功能 编辑:我尝试将stopPropagation()(如可能的副本中所述)应用于的单击处理程序,但也不起作用。对我来说,似乎有一种特定的方法来处理这种情况。根据,使用本机元素是不可能的,至少不像您预期的那样。因此,我

如何防止
元素在选择某个选项后自动关闭其下拉列表,即即使在进行选择后,我仍希望保持选项下拉列表打开

我已尝试在
onChange
处理程序中调用
事件.stopPropagation()
事件.preventDefault()
,但都不起作用

是一把小提琴的基本组成部分。我想实现上面描述的功能

编辑:我尝试将
stopPropagation()
(如可能的副本中所述)应用于
的单击处理程序,但也不起作用。对我来说,似乎有一种特定的方法来处理这种情况。

根据,使用本机
元素是不可能的,至少不像您预期的那样。因此,我看到了两种可能性:

  • 创建一个带有无序列表或任何其他非表单元素的“假”下拉菜单,如中所示

  • 如果您仍然希望使用本机
    元素,则有一种方法涉及在
    change
    上设置元素的
    size
    属性(或者在
    blur
    上删除它)

    下面是一个快速示例,说明React中可能出现的情况:

  • 类Hello扩展了React.Component{
    建造师(道具){
    超级(道具);
    this.state={isFocused:false};
    this.handleChange=this.handleChange.bind(this);
    this.handleBlur=this.handleBlur.bind(this);
    }
    手变(e){
    this.setState({isFocused:true});
    }
    车把(e){
    this.setState({isFocused:false});
    }
    render(){
    返回(
    {this.props.options.map((选项,索引)=>(
    {option}
    ))}
    );
    }
    }
    常量选项=[
    "这应该"保持开放",,
    “换衣服。”,
    "也应该"崩溃",,
    “在模糊上。”
    ];
    ReactDOM.render(
    ,
    document.getElementById('root'))
    );