Во время события, которое вызывает внешний API, после успешного завершения события я хотел бы отправить запрос graphql.
() => {
return axios(`${serverAddress}/paypal/refund`, {
method: 'post',
withCredentials: true,
}).then(async () => {
const res = await transactionAPI.getTransactions();
return res[0];
});
},
getTransaction - это запрос, который я отправил напрямую с помощью клиента graphql:
getTransactions: (pagePL?: IPagePL) => {
return client.query<{ getTransactions: ITransaction[] }>({
query: GET_TRANSACTIONS,
fetchPolicy: 'network-only',
variables: {
input: pagePL,
},
});
},
Затем в компоненте я использую graphql HOC для отслеживания изменений.
export const Transaction: SFC<ChildProps<any>> = ({ data }) => {
if (data.loading || data.error) {
return <ErrorLoadingComponent error={data.error} loading={data.loading} />;
}
return <Layout transactions={data.getTransactions} />;
};
export const TransactionContainer = graphql(GET_TRANSACTIONS)(Transaction);
Я вижу, что кэш обновляется каждый раз, когда я запускаю событие refund
.Но пользовательский интерфейс - нет.
Когда я просматриваю порядок событий, HOC вызывается до того, как getTransactions
закончится.Как только getTransactions
закончен, HOC не обновляет его снова.