Я пытаюсь обновить состояние объекта post
.Значения должны поступать из полей формы title
и entry
, состояния которых устанавливаются в режиме реального времени, правильно.Разве это не правильный способ вызова функции обратного вызова setState
?Я думаю, что проблема заключается в асинхронной части обновления состояния, но я не достаточно знаком с JS, чтобы действительно увидеть, что здесь происходит.Любая помощь будет оценена.
class EditForm extends React.Component {
initialState = {
title: (this.props.posts.find(el => el.id === this.props.id)).title,
entry: (this.props.posts.find(el => el.id === this.props.id)).entry,
post: this.props.posts.find(el => el.id === this.props.id)
}
state = {...this.initialState}
handleChange = (e) => {
const { name, value } = e.target
this.setState({ [name]: value })
}
handleSubmit = (e) => {
e.preventDefault()
this.setState(prevState => ({
post: {
...prevState.post,
title: this.state.title,
entry: this.state.entry
}
}), this.nowSubmit())
}
nowSubmit = () => {
console.log(this.state.post)
this.props.dispatch(updatePost(this.state.post))
this.props.closeForm()
}