The Mozilla Developers Network docs say MediaQueryList.addListener()
is deprecated.
Though it's working in my (Angular 8) code, the linting in VS Code is warning about deprecation.
What's the replacement for MediaQueryList.addListener()
?
Quoting from the MDN docs about MediaQueryList:
MediaQueryList.addListener()
Adds a listener to the MediaQueryListener that will run a custom callback function in response to the media query status changing. This is basically an alias forEventTarget.addEventListener()
, for backwards compatibility purposes.
addEventListener
needs an event type as the first argument, so it becomes this:
// deprecated: MediaQueryList.addListener(listener);
MediaQueryList.addEventListener('change', listener);
The same stands true for removeListener()
:
// deprecated: MediaQueryList.removeListener(listener);
MediaQueryList.removeEventListener('change', listener);
Do this to ensure compatibility with browsers that do not support MediaQueryList.addEventListener
:
const darkModeQuery = window.matchMedia('(prefers-color-scheme: dark)')
if (darkModeQuery.addEventListener) {
darkModeQuery.addEventListener('change', setDarkMode)
} else {
darkModeQuery.addListener(setDarkMode)
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With