我有 2 <Select>
的。第二个中的值取决于对第一个所做的选择。当我第一次更改所选项目时,第二次更新的可用选项。但是,如果我已经在第二个选项上做出了选择,那么即使根据对第一个选项的更改,该选项不应该可用,该选项也会保持选中状态。
当对第一个选择进行更改时,如何重置第二个选择以不选择任何内容?
首先选择:
<FormItem {...formTailLayout}>
<FormTitle>Operation</FormTitle>
{getFieldDecorator('Operation', {
rules: [
{
required: true
}
]
})(
<Select
showSearch
placeholder="Select an option"
onChange={this.handleOperationChange}
>
{operations.map(operation => (
<Option value={operation.operation_id}>
{operation.operation_name}
</Option>
))}
</Select>
)}
</FormItem>
第二选择:
<FormItem {...formTailLayout}>
<FormTitle>Metric</FormTitle>
{getFieldDecorator('Metric', {
rules: [
{
required: true
}
]
})(
<Select
showSearch
placeholder="Select an operation first"
onChange={this.handleMetricChange}
>
{matrics
.filter(
metric => metric.operation_fk === operation_fk
)
.map(metric => (
<Option value={metric.metric_name}>
{metric.metric_name}
</Option>
))}
</Select>
)}
</FormItem>
原文由 Kieran Quinn 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要查看 ant-design 页面上提到的 Coordinated Controls 示例。您可以在第一个
onChange
方法中简单地使用setFieldsValue
来设置第二个选择字段的值。我创建了一个 沙盒演示。