У меня есть указанный массив c с вопросами из базы данных. Я не знаю, сколько вопросов находится в массиве, поэтому я создал структуру с функцией map для элемента
<Fragment>
<div className="paddingSection">
<h1 className="large text-primary">Form Questions</h1>
<form className="form" onSubmit={(e) => onSubmit(e)}>
{form.questions.map((el, index) => (
<Fragment key={index}>
<div className="form-group">
<label>{el}</label>
<input
type="text"
placeholder={form.questions[index]}
name={index}
required
onChange={(e) => onChange(e)}
/>
</div>
</Fragment>
))}
<input type="submit" className="btn btn-primary my-1" />
</form>
</div>
</Fragment>
Теперь мне нужно получить ответы на вопросы и отправить их в базу данных в элементе массива. Но я не знаю, как сделать это правильно. Я написал, что:
const [answer, setAnswer] = useState('');
const [formData, setFormData] = useState([]);
const onChange = (e) => {
//taken from actuall input
setAnswer(e.target.value, answer);
//table of all elements
setFormData([answer, ...formData]);
};
const onSubmit = (e) => {
e.preventDefault();
addResponseToForm(match.params.company, match.params.id, formData, history);
};
Но я получаю что-то вроде этого:
7: "write"
8: "writ"
9: "wri"
10: "wr"
11: "w"
Я понимаю, что я получаю ответ в режиме реального времени, но как принять окончательный ответ на простой вопрос