MCPcopy
hub / github.com/react-hook-form/react-hook-form / useFieldArray

Function useFieldArray

src/useFieldArray.ts:82–531  ·  view source on GitHub ↗
(
  props: UseFieldArrayProps<
    TFieldValues,
    TFieldArrayName,
    TKeyName,
    TTransformedValues
  >,
)

Source from the content-addressed store, hash-verified

80 * ```
81 */
82export function useFieldArray<
83 TFieldValues extends FieldValues = FieldValues,
84 TFieldArrayName extends FieldArrayPath<TFieldValues> =
85 FieldArrayPath<TFieldValues>,
86 TKeyName extends string = 'id',
87 TTransformedValues = TFieldValues,
88>(
89 props: UseFieldArrayProps<
90 TFieldValues,
91 TFieldArrayName,
92 TKeyName,
93 TTransformedValues
94 >,
95): UseFieldArrayReturn<TFieldValues, TFieldArrayName, TKeyName> {
96 const formControl = useFormControlContext<
97 TFieldValues,
98 any,
99 TTransformedValues
100 >();
101 const {
102 control = formControl,
103 name,
104 keyName = 'id',
105 disabled,
106 shouldUnregister,
107 rules,
108 } = props;
109 const [fields, setFields] = React.useState(control._getFieldArray(name));
110 const ids = React.useRef<string[]>(
111 control._getFieldArray(name).map(generateId),
112 );
113
114 const _actioned = React.useRef(false);
115
116 if (!disabled) {
117 control._names.array.add(name);
118 }
119
120 React.useMemo(
121 () =>
122 !disabled &&
123 rules &&
124 fields.length >= 0 &&
125 (control as Control<TFieldValues, any, TTransformedValues>).register(
126 name as FieldPath<TFieldValues>,
127 rules as RegisterOptions<TFieldValues>,
128 ),
129 [control, name, fields.length, rules, disabled],
130 );
131
132 useIsomorphicLayoutEffect(() => {
133 if (disabled) {
134 return;
135 }
136
137 return control._subjects.array.subscribe({
138 next: ({
139 values,

Callers 15

FieldArrayFunction · 0.90
ComponentFunction · 0.90
FieldArrayFunction · 0.90
AppFunction · 0.90
AppFunction · 0.90
ComponentFunction · 0.90
AppFunction · 0.90
ChildFunction · 0.90
FormFunction · 0.90
ComponentFunction · 0.90
FieldArrayFunction · 0.90

Calls 5

useFormControlContextFunction · 0.90
unsetFunction · 0.85
cloneObjectFunction · 0.85
iterateFieldsByActionFunction · 0.85
updateMountedFunction · 0.70

Tested by 15

FieldArrayFunction · 0.72
ComponentFunction · 0.72
FieldArrayFunction · 0.72
AppFunction · 0.72
AppFunction · 0.72
ComponentFunction · 0.72
AppFunction · 0.72
ChildFunction · 0.72
FormFunction · 0.72
ComponentFunction · 0.72
FieldArrayFunction · 0.72
NestedFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…