Я не совсем понимаю, почему мой компонент не отображает свои изменения.
toggle() {
var url = rest.appointments + "/appointments";
Request.get(url).then((response) => {
this.setState(prevState => ({
appointments: response.body.map(a => Object.assign({}, a, { end: new Date(a.end), start: new Date(a.start) })),
modal: !prevState.modal
}));
});
}
Метод toggle()
вызывается, когда я нажимаю кнопку для создания новой встречи.До того, как я вызвал эту функцию, была создана встреча следующим методом: (я удалил нерелевантные строки)
saveAppointment() {
var url = rest.appointments + "/appointment";
Request.post(url)
.set('Content-Type', 'application/json')
.send('{"end":"' + end + '","start":"' + start + '" ,"title":"' + this.state.title + '","allDay":"false"}')
.end(function(err, res) {
properties.toggle();
});
}
Так что properties.toggle()
вызовет метод toggle()
, который находится в родительском компоненте.Когда я создаю первое назначение, компонент не отображается.Звонок GET не возвращает мне только что созданную встречу с saveAppointment()
.
Однако, если я позвоню saveAppointment()
еще раз, будет показана предыдущая встреча и новая.Таким образом, всегда первый не находится в ответе на первый GET
вызов.
Что мне нужно изменить, чтобы получать новые данные в вызове GET
?
РЕДАКТИРОВАТЬЯ могу подытожить это следующим вопросом: Как я могу сначала сделать POST, а затем GET, не испортив мои результаты GET?
EDIT2: Я просто видел, что иногда это даже работает, когда я пробую это дляпервый раз.Я не понимаю, почему, но кажется, что это работает, когда я немного подожду, прежде чем создать новую встречу.