setFormData({ ...formData, name: response.first_name });
setFormData({ ...formData, surname: response.last_name });
setFormData({ ...formData, email: response.email });
setFormData({ ...formData, password: response.id });
Проблема в том, что formData
не меняется до следующего рендера. Значение formData
- это значение на предыдущем рендере, и оно остается таким до следующего рендеринга. Таким образом, каждая из вышеперечисленных строк устанавливает старые данные плюс одно измененное свойство. Затем следующие строки устанавливают для старых данных другое измененное свойство, и свойство, которое вы изменили до этого, теряется.
Вы просто хотите вызвать setFormData
один раз со всеми необходимыми изменениями. Таким образом, вам не потребуется formData
для обновления, пока вы не закончите все настройки.
setFormData({
...formData,
name: response.first_name,
surname: response.last_name,
email: response.email,
password: response.id,
});
Но, глядя на структуру вашего состояния здесь, вы этого не сделаете. вообще нужны предыдущие значения, так как каждый ключ находится в ответе:
setFormData({
name: response.first_name,
surname: response.last_name,
email: response.email,
password: response.id,
});