Apollo-link: Tidak dapat membaca properti 'hapus' dari undefined

Dibuat pada 14 Mar 2019  ·  24Komentar  ·  Sumber: apollographql/apollo-link

Setelah memutakhirkan ke [email protected] mendapat kesalahan.

Uncaught TypeError: Cannot read property 'delete' of undefined
    at bundle.esm.js:67
    at cleanupSubscription (Observable.js:108)
    at notifySubscription (Observable.js:169)
    at onNotify (Observable.js:196)
    at SubscriptionObserver.complete (Observable.js:258)
    at bundle.esm.js:46
    at Set.forEach (<anonymous>)
    at Object.next (bundle.esm.js:45)
    at notifySubscription (Observable.js:152)
    at onNotify (Observable.js:196)
    at SubscriptionObserver.next (Observable.js:248)
    at Object.next (bundle.esm.js:32)
    at notifySubscription (Observable.js:152)
    at onNotify (Observable.js:196)
    at SubscriptionObserver.next (Observable.js:248)
    at index.js:171
bug blocking

Komentar yang paling membantu

Jangan terus bereaksi same , itu akan mempersulit orang untuk menemukan solusi yang diberikan oleh @dinidu01. Saya akan menyiapkan PR untuk memperbaikinya malam ini, mari gunakan emoji atau sesuatu di pos OP jika Anda mengalami masalah yang sama.

Maaf atas ketidaknyamanan ini, kami akan bekerja secara aktif untuk memperbaikinya secepatnya.

Semua 24 komentar

Saya melihat ini juga.

Ya melihat ini juga

Sama disini...

Sebagai solusinya
package.json

"resolutions": {
    "apollo-link-dedup": "1.0.15"
  }
rm -rf node_modules
npx npm-force-resolutions
npm install

Periksa versi lama dari apollo-link-dedup telah diinstal
npm ls apollo-link-dedup

@dinidu01 ini pertama kalinya saya melihat kunci "resolusi" digunakan. Maukah Anda menjelaskan mengapa ini berhasil? Tidak bisakah saya menyematkan versi paket ke "1.0.15" dan mendapatkan efek yang sama?

Itu berarti pelanggan Anda tidak terdefinisi, apa saja yang spesifik yang Anda lakukan untuk mencapai ini?

@JoviDeCroock bagi saya itu terjadi secara ajaib di malam hari tanpa saya mengubah kode apa pun. Saya menduga ada bug dalam rilis zen-observable yang dirilis 5 jam yang lalu.

Sama di sini, saya men- debugnya dan menemukan kunci yang hilang adalah kueri

https://github.com/apollographql/apollo-link/blob/master/packages/apollo-link-dedup/src/dedupLink.ts#L65

Ini adalah kesalahan saya pikir, jadi kami mendapatkan pelanggan dan memanggil .delete di atasnya. Ketika kunci tidak memiliki hasil, kita tidak boleh memanggil apa pun di sana.

sama disini

TypeError: Cannot read property 'delete' of undefined
    at /xxx/node_modules/apollo-link-dedup/src/dedupLink.ts:66:36

Sama disini. Menghancurkan bangunan kami.

Sama disini :(

sama di sini, butuh beberapa jam untuk mengetahuinya dari aliran cicd :(

Jangan terus bereaksi same , itu akan mempersulit orang untuk menemukan solusi yang diberikan oleh @dinidu01. Saya akan menyiapkan PR untuk memperbaikinya malam ini, mari gunakan emoji atau sesuatu di pos OP jika Anda mengalami masalah yang sama.

Maaf atas ketidaknyamanan ini, kami akan bekerja secara aktif untuk memperbaikinya secepatnya.

/usr/src/app/node_modules/zen-observable/lib/Observable.js:63
      throw e;
      ^

TypeError: Cannot read property 'delete' of undefined
    at /usr/src/app/node_modules/apollo-link-dedup/lib/dedupLink.js:48:47
    at cleanupSubscription (/usr/src/app/node_modules/zen-observable/lib/Observable.js:90:7)
    at notifySubscription (/usr/src/app/node_modules/zen-observable/lib/Observable.js:145:41)
    at onNotify (/usr/src/app/node_modules/zen-observable/lib/Observable.js:165:3)
    at SubscriptionObserver.complete (/usr/src/app/node_modules/zen-observable/lib/Observable.js:229:7)
    at /usr/src/app/node_modules/apollo-link-dedup/lib/dedupLink.js:34:81
    at Set.forEach (<anonymous>)
    at Object.next (/usr/src/app/node_modules/apollo-link-dedup/lib/dedupLink.js:34:45)
    at notifySubscription (/usr/src/app/node_modules/zen-observable/lib/Observable.js:130:18)
    at onNotify (/usr/src/app/node_modules/zen-observable/lib/Observable.js:165:3)

@dinidu01 ini pertama kalinya saya melihat kunci "resolusi" digunakan. Maukah Anda menjelaskan mengapa ini berhasil? Tidak bisakah saya menyematkan versi paket ke "1.0.15" dan mendapatkan efek yang sama?

@mbrochh Tidak, Anda tidak bisa. Dalam hal ini Anda akan memiliki lebih dari satu paket dengan versi yang berbeda. Coba yarn add [email protected] dan kemudian yarn why apollo-link-dedup setelahnya. Hasil:

[3/4] Finding dependency...
[4/4] Calculating file sizes...
=> Found "[email protected]"
info Has been hoisted to "apollo-link-dedup"
info This module exists because it's specified in "dependencies".
info Disk size without dependencies: "560KB"
info Disk size with unique dependencies: "1.67MB"
info Disk size with transitive dependencies: "3.48MB"
info Number of shared dependencies: 7
=> Found "apollo-client#[email protected]"
info This module exists because "apollo-client" depends on it.
info Disk size without dependencies: "540KB"
info Disk size with unique dependencies: "1.74MB"
info Disk size with transitive dependencies: "3.46MB"
info Number of shared dependencies: 7

Dengan "resolusi" Anda mendapat satu paket (saat menginstal setelah menghapus node_modules).

Perbaikan untuk ini akan datang sebentar lagi - maaf untuk sakit kepala semua!

[email protected] sekarang harus memperbaiki ini (terima kasih @JoviDeCroock!).

Sekadar informasi tentang apollo-link-dedup - fungsi ini sedang digabungkan ke dalam Apollo Client itu sendiri. Paket ini akan tetap apa adanya, tetapi jika Anda menggunakan Apollo Client, Anda secara otomatis menggunakan paket ini di belakang layar. Ketika Apollo Client 2.6.0 dirilis, hal ini tidak akan terjadi lagi (karena AC 2.6 akan menyediakan fungsionalitas deduplikasi tautan yang dimodifikasi sendiri).

Luar biasa, terima kasih untuk perbaikan cepat seperti itu, teman-teman!

@hwillson

Sayangnya, setelah memutakhirkan dependensi saya, saya masih melihat kesalahan ini, meskipun dengan jejak tumpukan yang sedikit berbeda. Tampaknya muncul setelah setiap permintaan.

Ketergantungan saya adalah:

    "apollo-cache-inmemory": "^1.5.1",
    "apollo-client": "^2.5.1",
    "apollo-link": "^1.2.10",
    "apollo-link-dedup": "^1.0.18",
    "apollo-link-error": "^1.1.9",
    "apollo-link-http": "^1.5.13",

Jejak tumpukan adalah:

bundle.esm.js:47 Uncaught TypeError: Cannot read property 'delete' of undefined
    at bundle.esm.js:47
    at cleanupSubscription (Observable.js:90)
    at notifySubscription (Observable.js:145)
    at onNotify (Observable.js:165)
    at SubscriptionObserver.complete (Observable.js:229)
    at bundle.esm.js:33
    at Set.forEach (<anonymous>)
    at Object.next (bundle.esm.js:33)
    at notifySubscription (Observable.js:130)
    at onNotify (Observable.js:165)
    at SubscriptionObserver.next (Observable.js:219)
    at bundle.esm.js:76

Coba tambahkan: "resolusi": {
"apollo-link-dedup": "1.0.18"
}

Terima kasih @JoviDeCroock! Itu berhasil.

Bagi siapa saja yang mengalami ini di masa mendatang sebelum 2.6, ringkasan perbaikannya:

1) Instal [email protected]
2) Tambahkan yang berikut ini ke package.json Anda:

"resolutions": {
  "apollo-link-dedup": "1.0.18"
}

Ini akan menyelesaikan ketergantungan apollo-link-dedup dalam Klien Apollo (saat ini di 1.0.17 ), menjadi 1.0.18 dengan perbaikan.

Salah satu dependensi Anda menarik apollo-link-dedup ke dependensi yang salah itulah bahaya menggunakan ^ alih-alih hanya memperbaiki versi Anda.

Sepertinya itu adalah klien apollo itu sendiri. Menjalankan npm ls apollo-link-dedup sebelum menambahkan resolusi ke package.json saya memberi saya:

├─┬ [email protected]
│ └── [email protected]
Apakah halaman ini membantu?
0 / 5 - 0 peringkat