antdv中关于form和Cascader 级联选择的问题

713 阅读1分钟

1、关于下拉框分离的问题

 :getPopupContainer="
            (triggerNode) => {
              return triggerNode.parentNode || document.body
            }
          "

2、Cascader 的数据在a-form-model中没有update的问题

antdv中form有两种写法

  • 旧版的form写法,与antd的写法极其类似
<a-form>
    <a-form-item></a-form-item>
</a-form>

set数据可以通过setFieldsValue方式

  • 新版的form-model,可以用v-model进行双向绑定数据,使用起来比原来的form方便点
<a-form-model :model="form">
    <a-form-model-item label="Activity name">
    </a-form-model-item>
</a-form-model>

set数据直接用过model上的form进行修改 但是,在与Cascader结合使用时,当初始化有数据,对原来数据进行修改时会出现update不及时问题,当前数据并没有变动,修改其他form-model-item里的数据后Cascader会有个更新
解决办法: 方法一:

  <a-form-model-item label="所在地区" prop="areaCode">
        <a-cascader
          v-model="form.areaCode"
          size="large"
          :getPopupContainer="
            (triggerNode) => {
              return triggerNode.parentNode || document.body
            }
          "
          @change="onChangeCity"
          :fieldNames="fieldNames"
          :options="options"
          placeholder="请选择所在地区"
        />
      </a-form-model-item>
      
      
   onChangeCity() {
      this.$forceUpdate()
    },

通过$forceUpdate()手动强制刷新 这种方法不建议,必填字段校验时会有问题 方法二: 用set方法set啦,看下之间form的赋值方式是不是有问题,双向绑定没绑好导致的