pro-components icon indicating copy to clipboard operation
pro-components copied to clipboard

🐛[BUG]BetaSchemaForm的valueEnum传入一个函数(row)=>xxx时,row一直是undefined,无法获取到值

Open Yuiffy opened this issue 1 year ago • 0 comments

提问前先看看:

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

🐛 bug 描述

BetaSchemaForm的valueEnum传入一个函数(row)=>xxx时,row一直是undefined,无法获取到值 文档里说可以传函数的:https://github.com/ant-design/pro-components/blob/817898fabd2f199113ebb8a063d1ffbf0ab22829/docs/components/schema.md#%E8%87%AA%E5%AE%9A%E4%B9%89-valuetype

📷 复现步骤

codesandbox.io: https://codesandbox.io/p/sandbox/shi-yong-proformdependency-forked-llfyp9?file=%2FApp.tsx%3A32%2C25&layout=%257B%2522sidebarPanel%2522%253A%2522EXPLORER%2522%252C%2522rootPanelGroup%2522%253A%257B%2522direction%2522%253A%2522horizontal%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522id%2522%253A%2522ROOT_LAYOUT%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522cls17y0sd0007356ma48cgpwz%2522%252C%2522sizes%2522%253A%255B70%252C30%255D%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522EDITOR%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522id%2522%253A%2522cls17y0sd0003356mlcnn7udc%2522%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522SHELLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522id%2522%253A%2522cls17y0sd0004356mah1rcuny%2522%257D%255D%252C%2522sizes%2522%253A%255B100%255D%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522DEVTOOLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522id%2522%253A%2522cls17y0sd0006356my2csi576%2522%257D%255D%252C%2522sizes%2522%253A%255B100%255D%257D%255D%252C%2522sizes%2522%253A%255B50%252C50%255D%257D%252C%2522tabbedPanels%2522%253A%257B%2522cls17y0sd0003356mlcnn7udc%2522%253A%257B%2522id%2522%253A%2522cls17y0sd0003356mlcnn7udc%2522%252C%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cls18o4ic0002356kut78t8fy%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522initialSelections%2522%253A%255B%257B%2522startLineNumber%2522%253A32%252C%2522startColumn%2522%253A25%252C%2522endLineNumber%2522%253A32%252C%2522endColumn%2522%253A25%257D%255D%252C%2522filepath%2522%253A%2522%252FApp.tsx%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%255D%252C%2522activeTabId%2522%253A%2522cls18o4ic0002356kut78t8fy%2522%257D%252C%2522cls17y0sd0006356my2csi576%2522%253A%257B%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cls17y0sd0005356m5khsz4lo%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522UNASSIGNED_PORT%2522%252C%2522port%2522%253A0%252C%2522path%2522%253A%2522%252F%2522%257D%255D%252C%2522id%2522%253A%2522cls17y0sd0006356my2csi576%2522%252C%2522activeTabId%2522%253A%2522cls17y0sd0005356m5khsz4lo%2522%257D%252C%2522cls17y0sd0004356mah1rcuny%2522%253A%257B%2522tabs%2522%253A%255B%255D%252C%2522id%2522%253A%2522cls17y0sd0004356mah1rcuny%2522%257D%257D%252C%2522showDevtools%2522%253Atrue%252C%2522showShells%2522%253Atrue%252C%2522showSidebar%2522%253Atrue%252C%2522sidebarPanelSize%2522%253A15%257D

🏞 期望结果

(row)=>{ // 希望这里能获取到row表单内容 }

💻 复现代码

见上方sandbox

或者:

import type { ProFormColumnsType } from "@ant-design/pro-components";
import { BetaSchemaForm, ProForm } from "@ant-design/pro-components";

const valueEnum = {
  money: { text: "按金额" },
  discount: { text: "按折扣" },
};

type DataItem = {
  type: string;
  testEnum: number;
};

const columns: ProFormColumnsType<DataItem>[] = [
  {
    title: "优惠方式",
    dataIndex: "type",
    formItemProps: {
      rules: [
        {
          required: true,
          message: "此项为必填项",
        },
      ],
    },
    valueType: "select",
    valueEnum,
    width: "m",
  },
  {
    title: "test enum",
    dataIndex: "testEnum",
    valueType: "select",
    valueEnum: (row) => {
      console.log("row=", row);
      return new Map([
        [1, "一"],
        [2, "二"],
        [3, `row是${JSON.stringify(row)}`],
      ]);
    },
  },
];

export default () => {
  return (
    <>
      <h1>普通json表单</h1>
      <BetaSchemaForm<DataItem>
        onFinish={async (values) => {
          console.log(values);
        }}
        columns={columns}
      />
    </>
  );
};

© 版本信息

  • ProComponents 版本: 2.6.48
  • umi 版本
  • 浏览器环境
  • 开发环境 [e.g. mac OS]

🚑 其他信息

image

Yuiffy avatar Jan 31 '24 03:01 Yuiffy