React Select 下拉禁用个别选项不起作用
React Select Dropdown disable individual options not working
我对反应还很陌生,但我正在尝试使用 ant-design 创建一个下拉菜单,并根据某些 IDs.All ID 数据 returns 禁用了一些单独的选项,如预期的那样,但是,禁用属性中的禁用逻辑(我认为应该起作用)似乎禁用了下拉列表中的每个选项。有人知道会发生什么吗?
<Select
value={this.props.value}
name={this.props.name}
className={this.props.cssClass}
disabled={this.props.disabled}
onChange={this.props.onChange}
mode="multiple"
showSearch
filterOption={(input, option) => option.props.children.toLowerCase()
.indexOf(input.toLowerCase()) >= 0}
size="large"
>
{
this.state.data.map(opt => (
<Option
disabled={this.props.multiSelect.filter(data => data.DivisionId !== opt.Id)}
key={opt.Id}
value={opt.Id}
>
{opt.Name}
</Option>
))
}
</Select>
您的代码的问题是数组 filter
方法将始终 return true
因为空数组被解析为 true
.
用 find
方法替换过滤器方法。
我对反应还很陌生,但我正在尝试使用 ant-design 创建一个下拉菜单,并根据某些 IDs.All ID 数据 returns 禁用了一些单独的选项,如预期的那样,但是,禁用属性中的禁用逻辑(我认为应该起作用)似乎禁用了下拉列表中的每个选项。有人知道会发生什么吗?
<Select
value={this.props.value}
name={this.props.name}
className={this.props.cssClass}
disabled={this.props.disabled}
onChange={this.props.onChange}
mode="multiple"
showSearch
filterOption={(input, option) => option.props.children.toLowerCase()
.indexOf(input.toLowerCase()) >= 0}
size="large"
>
{
this.state.data.map(opt => (
<Option
disabled={this.props.multiSelect.filter(data => data.DivisionId !== opt.Id)}
key={opt.Id}
value={opt.Id}
>
{opt.Name}
</Option>
))
}
</Select>
您的代码的问题是数组 filter
方法将始终 return true
因为空数组被解析为 true
.
用 find
方法替换过滤器方法。