ant-design / pro-components

🏆 Use Ant Design like a Pro!

Home Page:https://pro-components.antdigital.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

StepsForm 搭配 antd Form.List 和 Tabs 时 ProFormDateTimeRangePicker 的 transform 无法触发 🐛[BUG]

yanglvyou opened this issue · comments

提问前先看看:

https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md

🐛 bug 描述

如题

📷 复现步骤

image

🏞 期望结果

SmsSystemForm ProFormDateTimeRangePicker transform 方法能够触发

💻 复现代码

复现代码 https://codesandbox.io/p/sandbox/proformdatetimerangepicker-4wt2ct?file=%2Fsrc%2FSmsSystemForm.tsx%3A30%2C9-30%2C18

© 版本信息

  • ProComponents 版本: [2.7.9]
  • antd 版本:[5.18.0]
  • 浏览器环境 Chrome 125.0.6422.113(正式版本) (arm64)
  • 开发环境 [mac OS]

🚑 其他信息

碰到了同样的问题,我的场景是StepsForm - ProFormList - ProFormList嵌套,最里层的ProFormList中的transform无法触发

是由 7ea4fd1 这个PR引起的,这个PR导致ProList中的所有ProFormItemtransform不生效。但是还没找到为什么

@chenshuai2144 有时间看一下吗?

确定是这块代码问题,如果注释掉这块代码,ProFormList的子表单控件的transform就能被正常调用,

useEffect(() => {
// 如果 setFieldValueType 和 props.name 不存在不存入
if (!setFieldValueType || !props.name) {
return;
}
// Field.type === 'ProField' 时 props 里面是有 valueType 的,所以要设置一下
// 写一个 ts 比较麻烦,用 any 顶一下
setFieldValueType(
[props.name].flat(1).filter((itemName) => itemName !== undefined),
{
valueType: 'formList',
transform,
},
);
}, [props.name, setFieldValueType, transform]);

@chenshuai2144 有时间看一下,水平有限,实在是不知道怎么修