Highcharts: TypeError: Tidak dapat membaca properti 'pos' dari yang tidak ditentukan

Dibuat pada 15 Feb 2018  ·  18Komentar  ·  Sumber: highcharts/highcharts

Saya menggunakan highcharts-ng dengan highcharts.js
Setiap kali saya meluncurkan grafik, saya mendapatkan kesalahan ini:

angular.js:13920 TypeError: Cannot read property 'pos' of undefined
    at https://code.highcharts.com/stock/highstock.js:518:422
    at Array.forEach (<anonymous>)
    at a.each (https://code.highcharts.com/stock/highstock.js:27:466)
    at F.<anonymous> (https://code.highcharts.com/stock/highstock.js:518:396)
    at F.a.(anonymous function) [as getPlotLinePath] (https://code.highcharts.com/stock/highstock.js:19:437)
    at a.Tick.renderGridLine (https://code.highcharts.com/stock/highstock.js:113:264)
    at a.Tick.render (https://code.highcharts.com/stock/highstock.js:115:472)
    at F.renderTick (https://code.highcharts.com/stock/highstock.js:159:427)
    at https://code.highcharts.com/stock/highstock.js:160:448
    at Array.forEach (<anonymous>)

Ada ide?

Bug

Komentar yang paling membantu

Versi berikutnya (7.0.3) dijadwalkan pada akhir minggu ini

Semua 18 komentar

Hai @ Lir10

Bisakah Anda menghubungi dukungan kami? Lihat: https://www.highcharts.com/support

Kami menggunakan masalah github untuk laporan bug. Dalam kasus Anda, saya tidak yakin apakah ini bug di Highstock, bagan yang salah konfigurasi, atau bug di modul highcharts-ng.

Ada ide?

Hanya satu ide: kesalahan menyarankan masalah centang xAxis / yAxis, jadi saya akan mencoba menghapus opsi yang ditentukan di sana dan melihat apakah ini menyelesaikan masalah. Jika ya, maka buat ulang masalah di jsfiddle, tanpa highcharts-ng untuk memastikan itu bug di Highstock lib.

Hai @pawelfus ,

Anda benar - masalahnya ada pada tanda centang xAxis

Menutup masalah

@ Lir10 Bolehkah saya bertanya apa masalahnya? Saya memiliki masalah yang sama dan saya mencoba untuk menemukan penyebabnya. Terima kasih!

@bobbobotoh

Saya menyarankan untuk melakukan ini:

Ada ide?

Hanya satu ide: kesalahan menyarankan masalah centang xAxis / yAxis, jadi saya akan mencoba menghapus opsi yang ditentukan di sana dan melihat apakah ini menyelesaikan masalah. Jika ya, maka buat ulang masalah di jsfiddle, tanpa highcharts-ng untuk memastikan itu bug di Highstock lib.

@ Lir10 , dapatkah Anda menjelaskan di mana tepatnya masalahnya, jika Anda masih ingat? Saya menghadapi masalah yang sama, tetapi saya tidak dapat menangkap situasinya, itu terjadi begitu saja, dan sayangnya jawaban @pawelfus tidak banyak membantu.

Hai @davitri

Jika Anda dapat memberikan cara yang stabil untuk menciptakan kembali masalah tersebut, harap bagikan link untuk demo atau file yang diperlukan.

@KacperMadej , saya belum dapat menemukan akar masalahnya, tetapi inilah yang saya temukan (saya minta maaf sebelumnya untuk potongan kode yang dikaburkan di bawah):

  1. Kesalahan dilemparkan dalam fungsi step , di dalam blok itu:
d.group.animate({
  scaleY: 1
}, G(z(d.options.animation), {
  step: function(a, b) {
    h[f] = v + b.pos * (c.pos - v); /// <-- b is undefined
    d.group.attr(h)
  }
}))
  1. step fungsi dipanggil di sini, seperti yang Anda perhatikan, dengan konteks, tetapi tanpa a dan b args:
animate: function(e, q, b) {
  q = a.animObject(y(q, this.renderer.globalAnimation, !0));
  y(m.hidden, m.msHidden, m.webkitHidden, !1) && (q.duration = 0);
  0 !== q.duration ? (b && (q.complete = b),
    h(this, e, q)) : (this.attr(e, null, b),
  q.step && q.step.call(this)); /// <-- function called without arguments
  return this
}
  1. Fungsi animate adalah bagian dari SVGElement dan dipanggil di dalam fungsi render .
  2. Saya telah menemukan cara untuk mereproduksi ini, tetapi ini aneh. Ini terjadi pada pemuatan ulang aplikasi secara langsung, saat bagan dirender untuk pertama kalinya, dan terutama saat fokus bukan pada browser.

Saya tidak punya cukup waktu untuk memeriksa masalah itu secara mendalam. Semoga apa yang saya temukan akan membantu Anda.

PS Juga melampirkan potongan screenshot dengan kesalahan konsol. Tidak yakin apakah itu akan banyak membantu, tapi siapa tahu :)
image

@rumahsakitotak
Terima kasih atas infonya - cukup bagi saya untuk membuat ulang masalahnya.

Berikut solusi dengan perbaikan kode:
https://jsfiddle.net/BlackLabel/L6x08jeq/1/

Anda dapat menerapkan perbaikan kode dari demo ke dalam kode Anda (seperti modul - setelah file Highcharts utama). Jika Anda punya waktu, periksa apakah ini menyelesaikan kesalahan di aplikasi Anda.

FYI: Tidak dikecilkan, kode yang dapat dibaca manusia untuk file terkait Highcharts tersedia dengan menggunakan file dengan .src.js - misalnya highcharts.src.js .

Detail (alias cerita yang lebih panjang):

saat bagan dirender untuk pertama kalinya, dan terutama saat fokus bukan pada browser

Itu adalah sesuatu yang perlu diperiksa - ini mungkin terhubung ke fitur terbaru yang mencegah animasi untuk kartu / jendela browser yang tidak fokus (karena tidak perlu dianimasikan saat tidak ada yang menonton).

Saya bisa mendapatkan kode yang sesuai dengan kode yang tidak dikecilkan. Kuncinya di sini adalah menggunakan tipe deret kolom.

Demo: https://jsfiddle.net/BlackLabel/L6x08jeq/
Langkah:

  1. Buka konsol browser
  2. Bagan terbuka tanpa kesalahan, biarkan konsol tetap terbuka
  3. Tekan tombol run dan sembunyikan tab
  4. Kesalahan akan ditampilkan di konsol setelah grafik akan ditampilkan

_Catatan internal: _
H.pick((fx && fx.pos), 1) bukannya fx.pos tampaknya menyelesaikan masalah, tetapi pengujian diperlukan untuk mengonfirmasi.

@Tokopedia , terima kasih, itu masuk akal. Perbaiki bekerja :)
Bisakah Anda memperkirakan kapan perbaikan ini akan dirilis?

@rumahsakitotak
Perbaikan akan ada dalam PR minggu ini dan harus dirilis dengan versi Highcharts berikutnya.

Sementara itu:

  • Sekarang solusinya adalah dengan menambahkan kode yang dibungkus seperti yang terlihat di demo.
  • Setelah komit dibuat Highcharts membangun dengan perbaikan akan dapat diakses melalui tautan berbasis GitHub yang terkait dengan cabang dengan perbaikan.
  • Setelah PR diterima, build Highcharts dengan perbaikan akan dapat diakses di cabang master pada tautan berbasis GitHub - https://github.highcharts.com/highcharts.src.js

Masalah ini disebabkan oleh fungsi animate tidak memberikan argumen yang sesuai ke step saat ia melewati animasi, jadi saya memperbaikinya di sana.

@Welovehonda berapa lama sampai rilis berikutnya? Kami baru saja bermigrasi dari highchart sudut dan ingin menginstal versi dengan perbaikan sebelum menggabungkan cabang fitur kami, daripada memulai dengan kode tambahan untuk memperbaiki bug, yang tidak akan ada lagi dalam beberapa hari.

Versi berikutnya (7.0.3) dijadwalkan pada akhir minggu ini

Apakah ada ETA yang diperbarui?

Tes regresi sedang berlangsung. Setelah semua masalah teratasi, versi baru akan dirilis - Saya mengharapkan rilis baru segera, maksimal beberapa hari.

Ini dirilis sekarang @yhoiseth

Manis! Terima kasih telah memberi tahu saya 🙂

Untuk beberapa alasan, GitHub tidak memberi tahu saya, meskipun saya "menonton rilis" untuk repositori ini 🤔

Saya tidak tahu mengapa Anda tidak mendapatkan notifikasi, tapi tetap saja, Anda dapat mendaftar ke milis kami: https://www.highcharts.com/blog/download/

Apakah halaman ini membantu?
0 / 5 - 0 peringkat