عند استخدام _apollo-link-batch-http_ يتم استدعاء جميع الطلبات في فترة زمنية محددة دفعة واحدة. معظم الطلبات في تطبيقنا سريعة ولكن لدينا أيضًا بعض الطلبات التي تستغرق وقتًا طويلاً. سيؤدي تجميع الطلب البطيء المعروف مع الآخر إلى تجربة مستخدم أضعف ، حيث أن جميع الطلبات تتمتع الآن بنفس وقت استجابة الطلب الأبطأ. هذا هو السبب في أنه سيكون من الجيد أن يكون هناك رد اتصال يمكنه تحديد ما إذا كان الطلب يجب أن يكون دفعة أم لا على الفور.
يمكنك القيام بذلك مع الانقسام
__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)
جعل استعلام لا يستخدم ارتباط دفعة
const ProfileWithData = graphql(CurrentUserForLayout, {
options: {
context: { noBatch: true }
},
})(Profile);
هنا أستخدم noBatch
في السياق للتحكم في ما إذا كان يجب تجميع الاستعلام. بشكل افتراضي ، سيتم تجميع جميع الاستعلامات.
شكرًا لك على المثال charleyw -
التعليق الأكثر فائدة
يمكنك القيام بذلك مع الانقسام
__links.js__
جعل استعلام لا يستخدم ارتباط دفعة
هنا أستخدم
noBatch
في السياق للتحكم في ما إذا كان يجب تجميع الاستعلام. بشكل افتراضي ، سيتم تجميع جميع الاستعلامات.