Не удается прочитать свойство 'setState' из неопределенного при отправке формы через реагирующий модал
Я чувствую, что упускаю что-то, возможно, довольно глупое У меня есть всплывающая модальная форма, если пользователь хочет изменить свою фотографию аватара. И когда функция запускает и обновляет мою базу данных, она просто запутывается, когда я меняю состояние... так вот функция для обработки модальной отправки:
onModalSubmit: function () {
let data = new FormData();
data.append('id', this.state.user._id)
data.append('image', this.refs.image.files[0])
axios.patch('/api/userphoto', data, {
'Content-Type': 'multipart/form-data'
}).then(function (response) {
console.log(response);
window.localStorage.setItem('user', JSON.stringify(response.data.user));
this.setState({ user: response.data.user, modalIsOpen: false });
}).catch(function (error) {
console.log(error);
})
}
А вот и модальный:
<Modal
isOpen={this.state.modalIsOpen}
onAfterOpen={this.afterOpenModal}
onRequestClose={this.closeModal}
style={customStyles}
contentLabel="Change Photo"
>
<h2>Change Photo</h2>
<div className="field">
<div className="ui center icon input">
<input type="file" name="image" ref="image"/>
<button className="ui button" onClick={this.closeModal}>Cancel</button>
<button className="ui button" onClick={this.onModalSubmit}>Submit</button>
</div>
</div>
</Modal>
Я попытался связать эту функцию в строке, а также в конструкторе... но он просто говорит мне еще одну ошибку, что она уже связана с компонентом.
Опять же, функция работает, она просто зависает на this.setState после ответа от сервера.
Любая помощь приветствуется, спасибо!
1 ответ
Я попытался связать эту функцию в строке, а также в конструкторе... но он просто говорит мне еще одну ошибку, что она уже связана с компонентом.
Вы используете синтаксис React.CreateClass
завод. Я знаю это из вашего предыдущего поста.
Там вам не нужно связывать методы. Они уже связаны.
Проверьте полный ответ отсюда.