Я создаю веб-сайт для перечисления событий с возможностью создавать, обновлять и удалять события.Я использую подписку в своем компоненте для подключения к синхронизации приложений AWS, но обновление не работает должным образом.
Когда я подписываюсь на изменения, я обновляю свой список событий в моем состоянии, а затем отображаю события из состояния.Компонент появляется для нового события, но не заполняет его никакими данными.Он появляется сразу, и мне интересно, не дожидается ли его заполнения база данных?
// / и место отображения событий
render(){
return(
<Connect id="connect"
subscription={graphqlOperation(subscriptions.onCreateEvent)}
onSubscriptionMsg={(prev, newEvent) => {
const events = [...this.state.events, newEvent]
this.setState({events:events});
return prev;
}
}
query={graphqlOperation(listEvents)}>
{({ data: { listEvents }, loading, error }) => {
if (error) return (<h3>Error</h3>);
if (loading || !listEvents) return (<h3>Loading...</h3>);
return (
<div id="eventloader">
{this.displayEvents()}
</div>
);
}}
</Connect>
);
}
// функция для отображения событий
displayEvents () {
return this.state.events.map((event, i) => (
<Col md={4} key={i}>
<Event
openModal={this.openModal}
admin={false}
id={event.id}
title={event.name}
date={event.date}
description={event.description} />
</Col>
)
Спасибо за любую помощь.