Tengo una API que disminuye el volumen del sonido cuando se realiza una solicitud. Lo que busco hacer es que el sonido disminuya cuando se presiona el botón. El volumen debe disminuir continuamente a medida que se presiona el botón. Cuando se suelta el botón, el volumen del sonido dejará de disminuir. El siguiente código funciona, sin embargo, no funciona sin problemas. ¿Cómo puedo hacer que mi llamada de función se ejecute continuamente en el botón?
const [volume, setVolume] = useState(0); // needs to run until button is released useEffect(() => { let source = axios.CancelToken.source(); axios.get(`${network}/volume=${volume}`, { cancelToken: source.token, }); return function () { source.cancel("Cancelling in cleanup"); }; }, [volume]); const _handlePressIn = () => { timer.current = setInterval(() => setVolume((vol) => vol - 2), 60); }; const _handlePressOut = () => { // stop setInterval so that volume does not increase clearInterval(timer.current); }; <Pressable onPress={() => console.log("pressed")} onPressIn={() => _handlePressIn()} onPressOut={() => _handlePressOut()} > <Text>Volume Up</Text> </Pressable>;