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

react.js - React Antd Form 中如何批量创建和获取 Input 组件的 ref?

慕容聪
2024-08-06

antd,form中怎么用react获取多个input的ref?难道要一个一个创建useRef,然后给input吗?

有没有统一给form里面的所有控件创建ref,然后通过某个关键字获取相应input的ref

共有1个答案

东龙野
2024-08-06

ref定义为一个表单控件名称->ref的映射

import { Form, Input, Radio } from 'antd';
import './App.css';
import { useEffect, useRef } from 'react';

function App() {
  const formControlRefs = useRef<Record<string, any>>({});

  useEffect(() => {
    console.log('formControlRefs: ', formControlRefs.current);
    console.log('username ref: ', formControlRefs.current['username']);
  }, []);
  return (
    <Form>
      <Form.Item name="username">
        <Input
          ref={(ref) => {
            formControlRefs.current['username'] = ref;
          }}
        />
      </Form.Item>
      <Form.Item name="bio">
        <Input
          ref={(ref) => {
            formControlRefs.current['bio'] = ref;
          }}
        />
      </Form.Item>
      <Form.Item name="gender">
        <Radio.Group
          ref={(ref) => {
            formControlRefs.current['gender'] = ref;
          }}
          options={[
            { label: '男', value: 1 },
            { label: '女', value: 2 },
          ]}
        />
      </Form.Item>
    </Form>
  );
}

export default App;

Logs:

image.png

stackblitz

 类似资料:
  • 我有一个父组件[MainLayout],它有一个子组件[ListItems],并且有多个子组件[ListItem]。 谢谢你的回答!

  • 问题内容: 我有两个嵌套在App Component上的CarouselComponent和BannerComponent组件。我想在CarouselComponent中获得BannerComponent中的元素以进行滚动功能。 代码在这里; -– App.js -– BannerComponent.js -– CarouselComponent.js 我想知道在所有情况下如何在React js中

  • React Apollo Mutations允许我创建一个组件,该组件采用MutationResult作为道具:https://www.apollographql.com/docs/react/api/react-apollo.html#mutation-render-prop 现在,如果我要使用由graphql()创建的高阶组件 我的组件将只有作为道具。如何将获取到组件中?

  • 本文向大家介绍Django如何批量创建Model,包括了Django如何批量创建Model的使用技巧和注意事项,需要的朋友参考一下 1.前言: 将测试数据全部敲入数据库非常繁琐,而且如果与合作伙伴一起开发,部署,那么他们肯定也不想把时间花在一个一个录入数据的繁琐过程中,这时候,创建一个批量录入数据的脚本(population script)就非常有必要。 2.代码: 假设在models.py中定义

  • 本文向大家介绍如何批量引入组件?相关面试题,主要包含被问及如何批量引入组件?时的应答技巧和注意事项,需要的朋友参考一下 vue中全局和局部引入批量组件方法 一、全局批量引入 创建一个.js文件,并在main.js中引入即可。 二、局部批量引入 三、动态组件使用方法 使用标签保存状态,即切换组件再次回来依然是原来的样子,页面不会刷新,若不需要可以去掉。 通过事件改变is绑定的isWhich值即可切换

  • Google Sheets API v4: Python快速入门演示如何从谷歌电子表格中获取数据: 看https://developers.google.com/sheets/quickstart/python 现在,我已经解析了Batch Get的语法: 我尝试了以下操作,但“值”为null:

  • 问题内容: 我正在处理一批文件,这些文件包含有关同一对象生命周期不同时间的信息,而订购它们的唯一方法是按创建日期排序。我正在使用这个: 但这似乎不起作用。我究竟做错了什么?在Linux下还有其他更可靠/简单的方法来获取文件创建日期吗? 问题答案: fstat适用于文件描述符,而不适用于FILE结构。最简单的版本: 您需要通过检查sys / stat.h或使用某种autoconf构造来确定系统的st

  • 问题内容: 我正在阅读包含大量文件的文件夹。 如何获取文件的创建日期。我看不到任何直接功能来获取它。 有和。 如果文件没有被修改,会发生什么? 问题答案: 使用filectime。对于Windows,它将返回 创建 时间,而对于Unix,则将获得最好的 更改 时间,因为在Unix上没有创建时间(在大多数文件系统中)。 还要注意,在某些Unix文本中,文件的ctime称为文件的创建时间。错了 在大多