可以通过数据抽象一次性处理:
import React, { useEffect, useMemo } from 'react';
import { Form, Input, InputRef } from 'antd';
export function Demo() {
const inputRefs = useMemo>(() => new Map(), []);
const items = [
{
name: 'xxx',
},
{
name: 'yyy',
},
];
useEffect(() => {
console.log(inputRefs);
}, []);
return (
{items.map((item) => (
{
inputRefs.set(item.name, ref);
}}
/>
))}
);
}
如果组件结构差异比较大,没法通过数据统一,只能通过工具方法简化了:
import React, { useEffect, useMemo } from 'react';
import { Form, Input, InputRef } from 'antd';
export function Demo() {
const inputRefs = useMemo>(() => new Map(), []);
useEffect(() => {
console.log(inputRefs);
}, []);
const refCallback = (name: string) => {
return (ref: InputRef) => {
inputRefs.set(name, ref);
};
};
return (
);
}