Ren*_*ith 4 multi-select reactjs antd
我有一个表单,其中有一个多选下拉 antd 组件。在更改全选选项时,我需要选择最多 5 个标签的所有可用选项。
请在此处的代码和框中找到我的代码链接 https://codesandbox.io/s/summer-wind-1swto
最大标记为 5 由 handleSelectAll 函数指定,在选择选项时调用
<Form.Item label= 'Column Names'>
{getFieldDecorator(`columnNames`, {
validateTrigger: ['onChange', 'onBlur'],
rules: [
{
required: true,
message: "Please input the Column Names!",
},
],
})(
<Select
mode="multiple"
placeholder="Please select Columns"
maxTagCount={5}
onChange={this.handleSelectAll}
>
<Option key="all" value="all">---SELECT ALL---</Option>
{children}
</Select>
)}
</Form.Item>
Run Code Online (Sandbox Code Playgroud)
预期的:
On select all is clicked all the options to be selected
On unchecking it all options to be removed
Run Code Online (Sandbox Code Playgroud)
在你的情况下,setFieldsValue是行不通的。但是您可以使用getValueFromEvent.
handleSelectAll = (value) => {
if (value && value.length && value.includes("all")) {
if (value.length === all.length + 1) {
return [];
}
return [...all];
}
return value;
}
Run Code Online (Sandbox Code Playgroud)
<Form.Item label='Column Names'>
{getFieldDecorator(`columnNames`, {
validateTrigger: ['onChange', 'onBlur'],
getValueFromEvent: this.handleSelectAll,
rules: [
{
required: true,
message: "Please input the Column Names!",
},
],
})(
<Select
mode="multiple"
placeholder="Please select Columns"
maxTagCount={5}
onChange={this.handleSelectAll}
>
<Option key="all" value="all">---SELECT ALL---</Option>
{children}
</Select>
)}
</Form.Item>
Run Code Online (Sandbox Code Playgroud)
这将起作用。handleSelectAll事件返回使用getValueFromEvent和初始化选择组件分配的值。
| 归档时间: |
|
| 查看次数: |
9944 次 |
| 最近记录: |