Apollo-link-rest: مثال كسر React-Apollo

تم إنشاؤها على ٧ يونيو ٢٠١٨  ·  6تعليقات  ·  مصدر: apollographql/apollo-link-rest

مرحبا:

لقد بدأت للتو مع apollo-link-rest بالتكوين الأساسي في صندوق وصندوق أكواد react-apollo .

بدلاً من عرض قائمة البرامج التلفزيونية ، تعرض الواجهة الخطأ التالي: : Network error: Failed to execute 'fetch' on 'Window': Invalid credentials mode .

عند نسخ هذا الرمز في بيئة create-react-app ، اكتشفت أيضًا الخطأ التالي عند تشغيل طلب على Apollo DevTools:

{
  "errors": [
    {
      "message": "forward is not a function",
      "locations": [
        "TypeError: forward is not a function\n    at RestLink../node_modules/apollo-link-rest/bundle.umd.js.RestLink.request (http://localhost:3000/static/js/bundle.js:21028:20)\n    at http://localhost:3000/static/js/bundle.js:19809:33\n    at ApolloLink.request (http://localhost:3000/static/js/bundle.js:17407:12)\n    at ApolloLink.request 
    }
  ]
}

شكرا جزيلا لعملك على هذا الرابط! إنه يجعل العمل مع REST أكثر قابلية للإدارة من خلال توفير ميزات تشبه GraphQL لمن هم منا عالقون مع واجهات برمجة تطبيقات REST.

help wanted 🛠 question❔

التعليق الأكثر فائدة

يجب إصلاحه في الإصدار 0.3.1 - متوفر الآن!

ال 6 كومينتر

sinisterra عندما نرى forward is not a function في تطبيقنا ، فعادةً ما يكون ذلك بسبب نسياننا التوجيه @client أو @rest(…) على إحدى العقد. هل هذا هو الحال بالنسبة لك؟

فيما يتعلق بخطأك مع fetch - ما المتصفح الذي تختبر فيه؟

fbartho لا ، أنا أقوم بتشغيل نفس الاستعلام بالضبط من المثال ، يتم تطبيق التوجيه @rest بشكل صحيح. أنا أستخدم Google Chrome 67.0.3396.62. عندما حاولت تشغيل المثال في Firefox 60.0.1 ، فشل أيضًا ولكن بخطأ مختلف: Network error: 'credentials' member of RequestInit 'null' is not a valid value for enumeration RequestCredentials.

لا يتعلق الأمر فقط بالمثال المكسور! أعتقد أن هذه القضية حرجة للغاية.
كما أنني أتلقى نفس الخطأ الآن ، في بيئة الإنتاج الخاصة بي التي كانت تعمل بشكل جيد خلال الأشهر العديدة الماضية باستخدام apollo-link-rest. أعتقد أن هذا يجب أن يكون بسبب تحديث المتصفح؟
أنا أستخدم chrome Version 67.0.3396.79 (Official Build) (64-bit)

نفس المشكلة تحدث في Safari و Firefox .. أنا لا أفهمها تمامًا .. نفس الإصدار من تطبيقي كان يعمل بشكل جيد منذ 24 مايو.

إنه يحدث فقط مع الطلبات التي أقوم بها مع apollo-link-rest ، على الرغم من أنني قمت بتكوين customFetch fn الخاص بي ، والذي يعمل. ¯_ (ツ) _ / ¯

أحصل أيضًا على نفس الخطأ عند إزالة التهيئة الخاصة بي customFetch .

لقد وجدت المشكلة بالفعل.
أنا أستخدم وظيفة customFetch ، والتي يتم استدعاؤها بواسطة apollo-link-rest مع معلمة الخيارات credentials: null . هذا يسبب هذا الخطأ مع جميع المتصفحات بما في ذلك الإصدار الجديد من الكروم.

إصلاحي السريع لوظيفة الجلب المخصصة الخاصة بي نظرًا لأنني لا أستخدم بيانات الاعتماد هو ما يلي:

export function fetchWithAuth(url, options = {}) {
  // this fixes apollo-link-rest providing credentials: null options
  const { credentials, ...opt } = options
  return fetch(url, getOptions(opt));
}

كنت أيضًا أضرب رأسي بالحائط ، وحصلت على رسالة "خطأ في الشبكة: فشل في الجلب" تمنع الاستعلام من التنفيذ حتى باستخدام apollo-link-rest. JuHwon محق ، يبدو أن هذا مرتبط بخيار بيانات الاعتماد في مُنشئ RestLink. بينما كان يعمل سابقًا كاختياري وفقًا للوثائق ، لا يمكنني الآن تشغيله إلا بعد تضمين الخيار مثل:

const restLink = new RestLink({  
  uri: ${process.env.REACT_APP_API_URL}/,  
  credentials: 'same-origin',  // eg. or credentials: 'omit', etc
});

يجب إصلاحه في الإصدار 0.3.1 - متوفر الآن!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات