Ao usar _apollo-link-batch-http_ todas as solicitações em um intervalo de tempo específico são chamadas em lote. Em nosso aplicativo, a maioria das solicitações são rápidas, mas também temos algumas solicitações demoradas. Colocar em lote solicitações lentas conhecidas com outras resultaria em uma experiência do usuário pior, pois agora todas as solicitações têm o mesmo tempo de resposta que a mais lenta. É por isso que seria bom se houvesse um retorno de chamada que pudesse decidir se uma solicitação deveria ser disparada em lote imediatamente.
Você pode fazer isso com divisão
__links.js__
const batchHttpLink = new BatchHttpLink({
fetch: createApolloFetch({
constructOptions,
uri: process.env.REACT_APP_API_ENDPOINT,
}),
})
const normalHttpLink = createHttpLink({
uri: '/graphql',
credentials: 'same-origin',
})
export split(({getContext}) => getContext().noBatch, normalHttpLink, batchHttpLink)
Faça uma consulta, não use o link de lote
const ProfileWithData = graphql(CurrentUserForLayout, {
options: {
context: { noBatch: true }
},
})(Profile);
Aqui eu uso noBatch
no contexto para controlar se uma consulta deve ser agrupada. Por padrão, todas as consultas serão agrupadas.
Obrigado pelo exemplo @charleyw - vou prosseguir e encerrar, pois a pergunta parece ter sido respondida.
Comentários muito úteis
Você pode fazer isso com divisão
__links.js__
Faça uma consulta, não use o link de lote
Aqui eu uso
noBatch
no contexto para controlar se uma consulta deve ser agrupada. Por padrão, todas as consultas serão agrupadas.