alibaba / x-render

🚴‍♀️ 阿里 - 很易用的中后台「表单 / 表格 / 图表」解决方案
https://xrender.fun
6.99k stars 989 forks source link

form-render 2.2.13版本获取不了所有隐藏属性的值 #1355

Closed aiyuezhicheng closed 1 year ago

aiyuezhicheng commented 1 year ago

1.依赖仓库的版本(Dependencies versions)

2.问题描述(Bug description): 在form-render中通过getHiddenValues获取隐藏值失效。 解决用过:form.getValues(true); 获取不到所有隐藏值 ; removeHiddenData设置false 同样不行;设置visible代替hidden不好,列表类型不好用,不能完全隐藏

3.出现问题的 schema demo(Reproduction schema demo)

import FormRender, { useForm } from 'form-render';

import React from 'react';

const CustomFormDisplay: React.FC = () => {
  const form = useForm();
  return (
    <FormRender
      form={form}
      schema={{
        "type": "object",
        "labelWidth": 120,
        "displayType": "row",
        "global_script": "",
        "properties": {
          "属性1": {
            "bindPropertyName": "属性1",
            "bindPropertyType": 2,
            "title": "属性1",
            "type": "string",
            "default": "",
            "disabled": false
          },
          "多选隐藏": {
            "bindPropertyName": "多选隐藏",
            "bindPropertyType": 7,
            "title": "多选隐藏",
            "type": "string",
            "default": "1,2",
            hidden:true
          },
           "隐藏1": {
            "bindPropertyName": "隐藏1",
            "bindPropertyType": 7,
            "title": "隐藏1",
            "type": "string",
            "default": "1,2",
            hidden:true
          },
        }
      }}
      removeHiddenData={false}
      footer={true}
      onFinish={() => {
        console.log(form.getHiddenValues())
        console.log(form.getValues(true))
      }}
    />
  );
}

export default CustomFormDisplay;

4.最小复现 demo(Reproduction demo)image

lhbxs commented 1 year ago

已解决 设置 removeHiddenData = false,最新版本