当前位置: 首页 > 知识库问答 >
问题:

前端 - React Antd 表单校验报错validateFields重复报错?

诸福
2023-09-13

一个很普通的表单,动态校验了两个表单项,提交时newForm.validateFields()。结果出现重复的报错提示,控制台也报错key重复。

控制台报错信息:Warning: Encountered two children with the same key, 请输入用户邮箱. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version.
image.png

代码:

const handleOk = () => {    newForm      .validateFields()      .then(async (values) => {//省略<Modal        title="弹窗标题"        open={open}        onOk={handleOk}        okText="新增"        cancelText="取消"        confirmLoading={confirmLoading}        onCancel={handleCancel}        style={{ width: "50%" }}><Form          {...formItemLayout}          layout={formLayout}          form={newForm}          disabled={disabledNewForm}          autoComplete="off"><Form.Item            label="用户手机号"            name="phoneNumber"            rules={[              {                required: true,              },              () => ({                validator(_, value) {                  if(value && phone.test(value)) {                    return Promise.resolve();                  }                  if(!value){                    return Promise.reject(new Error("请输入用户手机号"));                  }                  return Promise.reject(new Error("请输入正确格式的手机号"));                },              }),            ]}>            <Input allowClear placeholder="请输入用户手机号" maxLength="11" />          </Form.Item>        //剩余代码省略</Form>

共有1个答案

庄阿苏
2023-09-13

image.png
自定义校验的数组中有两个校验规则,如果是为空,第二个校验要走成功,否则会冲突

 类似资料:
  • vue3 Ant Design Vue 表单提交校验报错 是因为新版的Antd使用了React的hooks,表单中的字段校验方法进行了一些修改,原来的回调方法改成了返回一个Promise对象吗?

  • 看不懂。。。 log日志如下

  • vitest测试报错? 按照这篇教程我配置了测试环境来测试react组件,但是报错了,不知道为什么? 环境的介绍 用vite来构建我们的项目 安装vitest、jsdom、@testing-library/react、@testing-library/jsdom 在根目录下创建testSetup.js 修改vite.config.js 修改package.json文件 React组件 测试 报错

  • 总是需要了解一些前沿的技术;其目的可能是为了让技术精进,也有可能是害怕技术落后而掉队;总之需要从各类网站了解一些前沿信息。 以我举例,我经常在(Hacker News、Medium、Dev.to、Twitter、阮一峰、GitHub 关注、微博、V2EX、Ruby China、GitHub Trending)等地去学习。通过整理后,把每天值得分享的内容,发布到公司的 QQ 群里,让大家和我同时受益

  • 前端文件: /src/app/api/compress/route.ts 后端文件:src/app/api/upload/route.ts 报错内容: 麻烦各位熟悉Next的大佬看一下 问题代码的GitHub地址:https://github.com/AnsonZnl/next-upload