Я пытаюсь сделать функцию "редактирования" для своего проекта, и я застрял в этой части ..
У меня есть запрос пут:
export const updateEvent = (event, id) => (dispatch, getState) => {
request
.put(`${baseUrl}/event/${id}`)
.send(event)
.then(response => {
dispatch(updatedEvent(response.body))
})
.catch(error => console.log(error))
}
Это это маршрут для указанного пута с Sequelize как ORM:
router.put('/event/:id', async (req, res, next) => {
const { id } = req.params
try {
const event = await Event.findByPk(id)
const updatedEvent = await event.update(req.body)
res.send(updatedEvent)
} catch (error) {
next(error)
}
})
Когда я тестирую его с почтальоном, все работает как положено. Я столкнулся с проблемой, когда отправляю положенные данные из React во внешнем интерфейсе.
У меня есть форма, и я сохраняю свои данные в локальном состоянии, а затем отправляю ее в такие действия :
handleSubmit = e => {
e.preventDefault()
const id = this.props.event.id
const updatedEvent = {
name: this.state.name,
description: this.state.description,
picture: this.state.picture,
startDate: this.state.startDate,
endDate: this.state.endDate,
userId: this.props.userId
}
this.props.updateEvent(updatedEvent, id)
}
Любое значение, оставленное пустым в форме, перезаписывает мои поля ничем (пустая строка). Как мне правильно с этим справиться?