antd 里面下拉框联动

需求:两个下拉框,第一个下拉框切换后,第二个下拉框根据第一个的值改变下拉选项
使用shouldUpdate,另外当第一个值改变时,onSelectChange事件中,使用form.setFieldsValue将被关联的值清空(或者其他操作)

 const onSelectChange = (e, type) => {
    switch (type) {
      case 'classCode':
        return setClassCode(e), form.setFieldsValue({ typeCode: '' });
    }
  }
============分割=====================
<Form.Item label={'事件分类'} name="classCode" rules={[{ required: true, message: '请选择一个分组' }]}>
          <Select
            placeholder="请选择一个分组"
            value={classCode}
            allowClear
            onChange={(e) => onSelectChange(e, 'classCode')}
          >
            {Object.keys(classCodeList).map((item, index) => {
              return <Option value={item} key={index}>{classCodeList[item].name}</Option>
            })}
          </Select>
        </Form.Item>
         <Form.Item
          noStyle
          shouldUpdate={(prevValues, currentValues) => prevValues.classCode !== currentValues.classCode}
        >
          {({ getFieldValue }) => {
            return getFieldValue('classCode') ? (
              <Form.Item
                name="typeCode"
                label="详细类型"
                rules={[{ required: true, message: '请输入账户' }]}>
                <Select
                  placeholder="请选择一个详细类型"
                  allowClear
                >
                  {renderTypeCode(getFieldValue('classCode'))}
                </Select>
              </Form.Item>
            ) : null;
          }}
        </Form.Item>
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值