0

我希望使用 class-transformer / class-validator 将表单值转换为 UI 中的正确类型。它适用于我的服务器应用程序,但不适用于 React。有人可以帮忙吗?

import { plainToClass } from "class-transformer";
import { IsNumber } from "class-validator";
import "reflect-metadata";

export class LovelyObject {
  @IsNumber()
  //@ts-ignore
  public shouldBeANumber: number;
}

const worksIfNotInReact = plainToClass(
  LovelyObject,
  { shouldBeANumber: "234" },
  { enableImplicitConversion: true }
);

预期输出(在服务器应用程序中工作)

{"shouldBeANumber" : 234}

ReactJS 中的输出

{"shouldBeANumber" : "234"}

此代码在这里工作正常:https ://codesandbox.io/s/workshere-c4wek?file=/src/index.ts:0-341

但在反应应用程序的上下文中不起作用:https ://codesandbox.io/s/not-working-q80uy?file=/src/App.tsx

4

1 回答 1

0

添加babel-plugin-transform-typescript-metadata到 babel 插件就可以了。

于 2021-02-20T14:31:12.323 回答