Добавьте значение регистра в новое поле ввода

У меня есть кнопка, которая добавляет новое текстовое поле в форму реагирования. Я хочу, чтобы это новое текстовое поле ввода хранило данные в регистре. Как я могу установить это свойство?

Обычно при создании текстового поля вы используете {...register("answer", { required: true })}.

В настоящее время у меня есть функция addOption:

const addOption = (e) => {
         if (nOptions < 6) {
             setNOptions(() => nOptions + 1);
             let ctn = document.getElementById("options");
             let newInpit = document.createElement("input");
             ctn.appendChild(newInput);
         }
     };

Эта функция добавляет поле ввода и работает хорошо, но я не знаю, как добавить свойство регистра в это поле.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы добавить свойство Register в динамически создаваемое поле ввода, вы можете изменить функцию addOption, чтобы она использовала синтаксис JSX React вместо прямого манипулирования DOM. Вы можете создать новый компонент для поля ввода и использовать useForm для управления состоянием формы и ее регистрацией.

ПРИМЕР

const [nOptions, setNOptions] = useState(0);
      const { register, handleSubmit } = useForm();
    
      const addOption = () => {
        if (nOptions < 6) {
          setNOptions(nOptions + 1);
        }
      };
    
      const onSubmit = (data) => {
        
        console.info(data);
      };
     
return (
        <form onSubmit = {handleSubmit(onSubmit)}>
          {/* Existing input fields */}
          {[...Array(nOptions)].map((_, index) => (
            <input key = {index} {...register(`answer${index}`, { required: true })} />
          ))}
          
          {/* Button to add new input field */}
          {nOptions < 6 && <button type = "button" onClick = {addOption}>Add Option</button>}
          
          {/* Submit button */}
          <input type = "submit" value = "Submit" />
        </form>
      );

Другие вопросы по теме