gpt4 book ai didi

reactjs - 删除项目时保持语义 react 多选下拉列表打开

转载 作者:行者123 更新时间:2023-12-05 03:07:59 24 4
gpt4 key购买 nike

当我删除选定的项目时,我试图让 Semanti-UI-React 的多选下拉菜单保持打开状态,但仍然在 Blur 上关闭它。我可以将 closeOnBlur 设置为 false,我得到了删除所选项目所需的行为,但随后我必须单击下拉菜单上的箭头将其关闭。我尝试插入相关事件以查看是否有一种方法可以手动实现所需的行为,但奇怪的是,如果将 closeOnBlur 设置为 false,我什至没有得到 onBlur 事件。

这是我的代码:

<Dropdown
style={{whiteSpace: 'nowrap', zIndex: 9999}}
upward={true}
search={true}
multiple={true}
selection={true}
loading={loading}
options={options}
value={this.props.selectedCodes || []}
closeOnBlur={false}
onBlur={() => console.log('onBlur')}
onChange={ (e, d) => {
console.log('onChange');
const value = d.value as string[];
const displayValues = value.map(code => {
const lookupEntry = options.find(i => i.value === code);
return lookupEntry ? lookupEntry.text : '';
});
const displayValue = displayValues.reduce(
(result, text) => {
return `${result}, ${text}`;
}, ''\
);
this.props.onSelectionChange(value, displayValue);
}}
onClose={() => console.log('onClose')}
/>

关于如何实现我想要的行为的任何建议,或者关于为什么在 closeOnBlur 设置为 false 时 onBlur 甚至不触发的见解?

最佳答案

此组件支持手动控制其打开/关闭状态 View 和 open 属性。因此,只需通过自定义包含类的状态来管理该 Prop ;

getInitialState() {
return { open: false };
},

handleClose() {
this.setState({open: false});
},

handleOpen() {
this.setState({open: true});
}

render() {
return <Dropdown
open={this.state.open}
onBlur={this.handleClose}
onFocus={this.handleOpen}
...
/>;

关于reactjs - 删除项目时保持语义 react 多选下拉列表打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46308935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com