ant design vue中设置defaultValue报错

在做raido组件时,需要一个默认项,从官网拷贝过来,使用defaultValue没问题。

<a-radio-group v-model="value" @change="onChange">
        <a-radio-button value="a">
          Hangzhou
        </a-radio-button>
        <a-radio-button value="b">
          Shanghai
        </a-radio-button>
        <a-radio-button value="c">
          Beijing
        </a-radio-button>
        <a-radio-button value="d">
          Chengdu
        </a-radio-button>
      </a-radio-group>

但把v-model改为v-decorator就不行了,会报错误

`defaultValue` is invalid for `getFieldDecorator` will set `value`, please use `option.initialValue` instead

根据官网描述:

this.form.getFieldDecorator(id, options) 和 v-decorator="[id, options]" #

经过 getFieldDecoratorv-decorator 包装的控件,表单控件会自动添加 value(或 valuePropName 指定的其他属性) onChange(或 trigger 指定的其他属性),数据同步将被 Form 接管,这会导致以下结果:

  1. 不再需要也不应该用 onChange 来做同步,但还是可以继续监听 onChange 等事件。
  2. 你不能用控件的 value defaultValue 等属性来设置表单域的值,默认值可以用 getFieldDecorator 或 v-decorator 里的 initialValue
  3. 你不应该用 v-model,可以使用 this.form.setFieldsValue 来动态改变表单值。

 

 

所以在使用v-decorator时需要在其中设置initialValue

<a-radio-group  v-decorator="['value', {initialValue: 'a'}, {rules: [{ required: true, message: '请选择' }]}]" @change="onChange">
  <a-radio-button value="a">
    Hangzhou
  </a-radio-button>
  <a-radio-button value="b">
    Shanghai
  </a-radio-button>
  <a-radio-button value="c">
    Beijing
  </a-radio-button>
  <a-radio-button value="d">
    Chengdu
  </a-radio-button>
</a-radio-group>

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值