Skip to content

FormModel JSX写法,终端会输出异常 #2296

@crper

Description

@crper
  • I have searched the issues of this repository and believe that this is not a duplicate.

Version

1.6.0

Environment

macos / vue 2.6

Reproduction link

国外的网络太卡,codesandbox各种打不开.
复现代码可以看最后

Steps to reproduce

常规引入,JSX写法..
浏览器控制台就输出异常了.

What is expected?

修正,可以支持jsx写法

What is actually happening?

主要是formmodal的props: model的绑定不支持jsx写法;

<FormModel
model={this.formData}

这种写法就直接控制台报错了,
绑定的校验规则也无法映射到实际的model内的值

其他

Demo.vue

<script>
import { FormModel, Input, Select, Tooltip } from 'ant-design-vue';

export default {
  name: 'StepRecord',
  data() {
    return {
      toolTipPlacement: 'topLeft',
      formData: {
        serviceName: '', // 服务名,同步git repo name
        serviceGroup: undefined, // 服务群组,同步git repo group
        serviceDesc: '', // 服务的描述信息
        serviceType: '', // 边缘服务
        serviceRouterType: '', // 路由类型->k8ssvc
      },
      fieldRules: {
        serviceName: [
          { required: true, message: '请输入服务名字', trigger: 'blur' },
          { min: 4, max: 20, message: '长度在4-20之间', trigger: 'blur' },
        ],
        serviceGroup: [{ required: true, message: '请选择服务群组名', trigger: 'change' }],
        serviceDesc: [{ required: true, message: '请输入此服务的概要描述', trigger: 'blur' }],
      },
      labelCol: { span: 3 },
      wrapperCol: { span: 14 },
      serviceGroupDataList: [
        {
          label: 'h3yun',
          value: 'h3yun',
        },
      ],
    };
  },
  render() {
    return (
      <FormModel
        model={this.formData}
        ref="recordFormRef"
        rules={this.fieldRules}
        labelCol={this.labelCol}
        wrapperCol={this.wrapperCol}
      >
        <FormModel.Item label="服务名" prop="serviceName">
          <Tooltip trigger={['focus']} placement={this.toolTipPlacement}>
            <span slot="title">在技术中台展示的名字,目前同步为仓库名</span>
            <Input vModel={this.formData.serviceName} />
          </Tooltip>
        </FormModel.Item>
        <FormModel.Item label="服务群组" prop="serviceGroup">
          <Tooltip trigger={['focus']} placement={this.toolTipPlacement}>
            <span slot="title">在技术中台所属群组,目前同步为仓库群组</span>
            <Select
              vModel={this.formData.serviceGroup}
              options={this.serviceGroupDataList}
              placeholder="请选择服务群组"
            ></Select>
          </Tooltip>
        </FormModel.Item>
        <FormModel.Item label="服务描述信息" prop="serviceDesc">
          <Tooltip trigger={['focus']} placement={this.toolTipPlacement}>
            <span slot="title">描述你要搞的这个东东是做啥用的!!</span>
            <Input.TextArea
              vModel={this.formData.serviceDesc}
              autoSize={{ minRows: 3, maxRows: 16 }}
              placeholder="你要搞的这个东东面向的领域,用来做啥!!"
            />
          </Tooltip>
        </FormModel.Item>
      </FormModel>
    );
  },
};
</script>

image

model={this.formData}去除就没有警告了.
但是这样双向绑定和规则校验就成了摆设..

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions