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

Function setFieldValue

src/logic/createFormControl.ts:777–851  ·  view source on GitHub ↗
(
    name: InternalFieldName,
    value: SetFieldValue<TFieldValues>,
    options: SetValueConfig = {},
    skipClone = false,
    skipRender = false,
  )

Source from the content-addressed store, hash-verified

775 );
776
777 const setFieldValue = (
778 name: InternalFieldName,
779 value: SetFieldValue<TFieldValues>,
780 options: SetValueConfig = {},
781 skipClone = false,
782 skipRender = false,
783 ) => {
784 const field: Field = get(_fields, name);
785 let fieldValue: unknown = value;
786
787 if (field) {
788 const fieldReference = field._f;
789
790 if (fieldReference) {
791 !fieldReference.disabled &&
792 set(_formValues, name, getFieldValueAs(value, fieldReference));
793
794 fieldValue =
795 isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)
796 ? ''
797 : value;
798
799 if (isMultipleSelect(fieldReference.ref)) {
800 [...fieldReference.ref.options].forEach(
801 (optionRef) =>
802 (optionRef.selected = (
803 fieldValue as InternalFieldName[]
804 ).includes(optionRef.value)),
805 );
806 } else if (fieldReference.refs) {
807 if (isCheckBoxInput(fieldReference.ref)) {
808 fieldReference.refs.forEach((checkboxRef) => {
809 if (!checkboxRef.defaultChecked || !checkboxRef.disabled) {
810 if (Array.isArray(fieldValue)) {
811 checkboxRef.checked = !!fieldValue.find(
812 (data: string) => data === checkboxRef.value,
813 );
814 } else {
815 checkboxRef.checked =
816 fieldValue === checkboxRef.value || !!fieldValue;
817 }
818 }
819 });
820 } else {
821 fieldReference.refs.forEach(
822 (radioRef: HTMLInputElement) =>
823 (radioRef.checked = radioRef.value === fieldValue),
824 );
825 }
826 } else if (isFileInput(fieldReference.ref)) {
827 fieldReference.ref.value = '';
828 } else {
829 fieldReference.ref.value = fieldValue;
830
831 if (!fieldReference.ref.type && !skipRender) {
832 _subjects.state.next({
833 name,
834 values: skipClone ? _formValues : cloneObject(_formValues),

Callers 3

updateValidAndValueFunction · 0.85
setFieldValuesFunction · 0.85
_setValueFunction · 0.85

Calls 3

cloneObjectFunction · 0.85
updateTouchAndDirtyFunction · 0.85
triggerFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…