удалить требуемую проверку в поле ввода (если я ввел текст в другое поле ввода)

удалить требуемую проверку в поле ввода (если я ввел какой-то текст в другое поле ввода). Я создал поля ввода (два поля ввода) из json. Изначально оба требуются. Но если пользователь вводит «привет» в первое поле, я хочу удалить обязательные проверить из второго поля ввода.Я использовал watch и onchange Я проверил значение первого поля. но как удалить обязательное? Я попытался использовать отмену регистрации, но все еще не работает

const onChange = e => {
    console.log(e.target.name);
    if (e.target.name == "agencyName") {
      if (agencyName == "hello") {
        //remove required
        unregister({ required: false, name: "contactPerson" });
      }
    }
  };

вот мой код https://codesandbox.io/s/react-hook-form-watch-unir2

Ссылка на API

https://react-hook-form.com/api/


person user944513    schedule 08.02.2020    source источник
comment
Можете ли вы просмотреть () поле contactPerson, а затем отменить регистрацию (contactPerson) или отменить регистрацию (требуется contactPerson.required)?   -  person Sydney Y    schedule 08.02.2020
comment
да, я могу смотреть contactPerson , но как я буду незарегистрированным?   -  person user944513    schedule 08.02.2020
comment
Но что, если пользователь впоследствии удалит привет из поля агентства? Вам нужна логика, чтобы восстановить required при контакте, это слишком сложно. Вам нужно выражение проверки, которое включает в себя ценность агентства.   -  person Richard Matsen    schedule 09.02.2020


Ответы (1)


Вот обновленный скрипт, который делает контактное лицо необязательным, если название агентства равно "привет".

https://codesandbox.io/s/react-hook-form-watch-j396u

person Paul    schedule 08.02.2020
comment
Я получаю ответ от сервера .. не меняйте json - person user944513; 08.02.2020
comment
пожалуйста, удали этот ответ - person user944513; 08.02.2020
comment
Ваш вопрос касался того, чтобы сделать проверку необязательной, и мой ответ предусматривает, что вы сейчас говорите о проблеме с сервером, которая выходит за рамки вашего исходного вопроса. - person Paul; 08.02.2020
comment
Мой вопрос в том, почему вы меняете json .. любое другое решение - person user944513; 08.02.2020
comment
В вашем примере кода нет JSON. Переменная fields не является JSON, это массив объектов Javascript. Мне пришлось изменить value: true на value: isContactPersonRequired, потому что вы хотите, чтобы значение было динамическим, а не жестко запрограммированным на true. - person Paul; 08.02.2020