chartjs / Chart.js

Simple HTML5 Charts using the <canvas> tag
https://www.chartjs.org/
MIT License
63.94k stars 11.89k forks source link

Cannot read properties of null (reading 'addEventListener') #11677

Closed DAcodedBEAT closed 4 months ago

DAcodedBEAT commented 4 months ago

Expected behavior

addEventListener and removeEventListener should only be callable on valid defined and non-null elements.

Current behavior

TypeError: Cannot read properties of null (reading 'addEventListener')
  at addListener(../../node_modules/chart.js/dist/chart.js:3234:8)
  at createProxyAndListen(../../node_modules/chart.js/dist/chart.js:3360:15)
  at DomPlatform.addEventListener(../../node_modules/chart.js/dist/chart.js:3406:21)
  at _add(../../node_modules/chart.js/dist/chart.js:6216:16)
  at <anonymous>(../../node_modules/chart.js/dist/chart.js:6224:41)
  at each(../../node_modules/chart.js/dist/chunks/helpers.segment.js:56:12)
  at _a.bindUserEvents(../../node_modules/chart.js/dist/chart.js:6224:10)
  at _a.bindEvents(../../node_modules/chart.js/dist/chart.js:6205:10)
  at _a._checkEventBindings(../../node_modules/chart.js/dist/chart.js:5903:12)
  at _a.update(../../node_modules/chart.js/dist/chart.js:5852:10)
  at this._doResize(../../node_modules/chart.js/dist/chart.js:5620:46)
  at sentryWrapped(../../node_modules/@sentry/browser/esm/helpers.js:37:17)

From sentry:

image

Reproducible sample

.

Optional extra steps/info to reproduce

No response

Possible solution

Here is what I am proposing: https://github.com/DAcodedBEAT/Chart.js/commit/8930d1913ab206e008aaab3d18638bffc3aa73ba

Context

chart.js version

4.4.1

Browser name and version

Chrome >=120 and Edge >= 120 according to my project's Sentry, but probably many others

Link to your project

No response

DAcodedBEAT commented 4 months ago

@Chartjs sorry for the ping but I want to resolve this. I have asked about it about a month ago, I have provided a solution, and would like your input so I can contribute my fix.

DAcodedBEAT commented 4 months ago

@etimberg / @LeeLenaleee seeing that you are recent contributors, I'm pinging you both about this issue (as per the recommendation from the support discord).

etimberg commented 4 months ago

@DAcodedBEAT the proposed changes make sense to me if you'd like to send a PR

DAcodedBEAT commented 4 months ago

Thanks @etimberg! I opened https://github.com/chartjs/Chart.js/pull/11685 :)