Cast to string failed for value
При отправки формы высаккивает "ошибка 400", скриншот ошибки здесь https://pastenow.ru/fd19fd27b433267dc843427f9381cbff
changeUserData(userName, userAbout) {
return fetch (this._baseUrl + '/users/me', {
method: 'PATCH',
headers: this._headers,
body: JSON.stringify({
name: userName,
about: userAbout
}),
})
.then(this._checkResponse);
};
export default class PopupWithForm extends Popup {
constructor (selectorPopup, selectorForm, handleFormSubmit) {
super(selectorPopup);
this._selectorForm = this._selectorPopup.querySelector(selectorForm)
this._handleFormSubmit = handleFormSubmit;
};
/* Получение значений из полей ввода */
_getInputValues() {
this._inputList = this._selectorPopup.querySelectorAll('.popup__input');
this._newInputValues = {};
this._inputList.forEach((inputElement) => {
this._newInputValues[inputElement.name] = inputElement.value
});
return this._newInputValues
};
/* Сброс значений полей ввода */
resetForm() {
this._selectorForm.reset();
};
/* Добавление сброса формы в родительский метод закрытия модального окна*/
closePopup() {
super.closePopup();
this.resetForm();
};
/* Установка слушателей */
setEventListeners() {
super.setEventListeners();
this._selectorForm.addEventListener('submit', (evt) => {
evt.preventDefault();
this._handleFormSubmit(this._getInputValues());
this.closePopup();
});
}
};
/* ФОРМА ПРОФИЛЯ */
/* Хендлер отправки формы */
const handleFormEditSubmit = (newInputValues) => {
api.changeUserData(newInputValues)
.then((userData) => {
userInfo.setUserInfo(userData)
})
.catch((err) => {
console.log(err);
});
};
/* Открытие модального окана и подключение слушателей */
const popupEdit = new PopupWithForm(
'.popup_type_edit',
'.popup__input-container_type_edit',
handleFormEditSubmit
);
popupEdit.setEventListeners();
editprofileButton.addEventListener('click', () => {
const userData = userInfo.getUserInfo();
inputName.value = userData.name;
inputAbout.value = userData.about;
popupEdit.openPopup();
});
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
changeUserData принимает два параметра:
changeUserData(userName, userAbout) {
При вызове, передается всего один:
api.changeUserData(newInputValues)
В этом случае в первый параметр передается какой-то объект, который не могут привести к строке, о чем указано в начале ошибки, второй параметр остается пустым - о чем указано в конце ошибки.