Por alguna razón, no puedo hacer que mi contador se detenga. La función recibe el 'detener' en onPressOut, sin embargo, clearInterval () no funciona, el contador continúa ejecutándose
const startCounter = press => { let myInterval = setInterval(() => { setCounter(count => count + 1); if (press === 'stop') { clearInterval(myInterval); } }, 1000); }; return ( <Pressable onPress={toggleMute} onLongPress={startCounter} onPressOut={() => startCounter('stop')} /> )
Prueba este código, ¡funciona!
let myInterval = ''; const startCounter = press => { myInterval = setInterval(() => { setCounter(count => count + 1); if (press === 'stop') { clearInterval(myInterval); } }, 1000); }; const stopCounter = () => { clearInterval(myInterval); } return ( <Pressable onPress={toggleMute} onLongPress={startCounter} onPressOut={() => stopCounter()} /> )