solid-eslint warning about event handlers

So, I get the eslintsolid/reactivity warning when I use reactive props in event handlers:
This function should be passed to a tracked scope (like createEffect) or an event handler because it contains reactivity, or else changes will be ignored.
createEffect(() => {
const wS = waveSurfer();

if (wS) {
wS.on('play', () => {
if (props.currentArticle)
trackStartPlayback(props.currentArticle);
}
createEffect(() => {
const wS = waveSurfer();

if (wS) {
wS.on('play', () => {
if (props.currentArticle)
trackStartPlayback(props.currentArticle);
}
How else would you all handle this?
12 Replies
Tommypop
Tommypop13mo ago
If you're ok with props.currentArticle not tracking, then that approach is fine The linter reports a lot of false positives just in case it wasn't intentional
Bersaelor
Bersaelor13mo ago
yeah, I mean, the player reports when something happens, I just need to make sure the event is then fired with the current item. You mean by props.currentArticle not tracking that it would not be the current article but the article from the time the event-handler was created?
Tommypop
Tommypop13mo ago
The effect won't re-execute when props.currentArticle changes The state should always be up to date when the handler runs
Bersaelor
Bersaelor13mo ago
yeah thats fine, it's not supposed to
Tommypop
Tommypop13mo ago
Yeah, I think the linter just reports these cases in case it's unintentional, so could cause people hours of seemingly unsolvable issues
Bersaelor
Bersaelor13mo ago
i think, I even should make that explicit, that the createEffect should only fire when waveSurfer() changes. Is there a way of giving it my intended dependency list?
Tommypop
Tommypop13mo ago
Yeah, there's the on function So you can just do createEffect(on(waveSurfer, (wS) => {})) Where wS in the closure will just be the data within the waveSurfer signal
Bersaelor
Bersaelor13mo ago
nice alright
Tommypop
Tommypop13mo ago
Here's the docs link if you want: https://docs.solidjs.com/references/api-reference/reactive-utilities/on You can also defer the effect if you don't want it to immediately execute
Bersaelor
Bersaelor13mo ago
I really like the new docs
Tommypop
Tommypop13mo ago
Awesome lol :) They're being updated again relatively soon afaik
Bersaelor
Bersaelor13mo ago
ah sorry, I forgot to import on and for some reason my IDE wasn't complaining about that but instead gave me more reactivity warnings
Want results from more Discord servers?
Add your server
More Posts
Scroll & Drag Solid DNDHi, do you know the best way to manage scroll (auto) when using solid dnd? Especially as I have theHow can this incredibly simple piece of code lead to "Maximum call stack size exceeded" ?The entire code for this demo is here: https://playground.solidjs.com/anonymous/7ec72a47-1bb4-4e9f-bHow to protect all routes other than sign-inHi there, I am making an app where I only want signed-in users to see the content, I want all routesTypeError: Cannot read properties of undefined (reading 'remove') at reconcileArraysI get this during a `refetch()` call of a resource. Pretty hard to debug and see what actually getsValidating a field based on promise values min and max with yup and react form handlerconst schemaReference = (res) => { console.log(res); return yup.object({ unit: yup.strReaching into nested properties and keeping them reactive?Coming from React I really like that I can destruct nested props into single variables, in this examTesting difficulties in solid-startI'm running into some perplexing errors with Vitest in my SSR-enabled Solid Start app. In the importReactSVG like component in SolidHey, I recently was remaking my portfolio website in astro with some solid.js. I wanted to make an iSuspense not updating when navigating to Route directlyHey folks, I am currently having a weird issue I can't quite solve: We have a route which receivesHow do you do logging errors etc. In solid start?Like how do you get logs you can browse for instance in a web interface when solid start app is runn