У меня есть кнопка, которая добавляет новое текстовое поле в форму реагирования. Я хочу, чтобы это новое текстовое поле ввода хранило данные в регистре. Как я могу установить это свойство?
Обычно при создании текстового поля вы используете {...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);
}
};
Эта функция добавляет поле ввода и работает хорошо, но я не знаю, как добавить свойство регистра в это поле.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Чтобы добавить свойство 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>
);