Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

128
Views
especifique un período de tiempo para realizar solicitudes de API y permita que el usuario detenga y reinicie estas solicitudes en React Native

Estoy aprendiendo React Native y estoy trabajando en una aplicación. Pasé algunos días tratando de encontrar una manera de hacer esto:

Tengo una aplicación simple con botones. Necesito grabar audio y enviarlo a una API cada 5 segundos. (en el código verás 6 segundos)

Necesito darle al usuario la capacidad de detener el envío de audio, pensé que esto podría lograrse presionando botones para cambiar un estado que detendría la comunicación con la API.

Aquí está mi razonamiento.

 export default function App() { const [recording, setRecording] = React.useState(); ... const uploadAudio = async (path) => { const formData = new FormData() ... async function startStreamRec () { if (stream) { try { const repet= setInterval(async ()=> { await Audio.requestPermissionsAsync(); await Audio.setAudioModeAsync({ allowsRecordingIOS: true, playsInSilentModeIOS: true, }); const recording = new Audio.Recording(); await recording.prepareToRecordAsync(Audio.RECORDING_OPTIONS_PRESET_HIGH_QUALITY); await recording.startAsync(); setRecording(recording); console.log('Recording started'); console.log(disable); console.log('Stopping recording..'); setRecording(undefined); recording.stopAndUnloadAsync(); const uri = recording.getURI(); console.log('Recording stopped and stored at', uri); setPath(uri); uploadAudio(uri); }, 6000); } catch (err) { console.error('Failed to start recording', err); } } else { clearInterval(repet); } } async function stopStream() { setStream(false); startStreamRec(); } async function startStream() { setStream(true); startStreamRec(); } return ( <View> ... <TouchableOpacity onPress={startStream} style={styles.cathButton}> <Text> Start</Text> </TouchableOpacity> <TouchableOpacity onPress={ stopStream } style={styles.cathButton}> <Text> Stop </Text> </TouchableOpacity> ... </View> ); }

Sin embargo, este código no funciona correctamente.

Probé algunas cosas con useeffect, con ganchos de estado, mientras ciclos de settimeout, setState pero todo falló. Un error común que recibo es "error: demasiados renderizados. React limita la cantidad de renderizados para evitar un bucle infinito".

No sé qué estoy haciendo mal.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!