He estado tratando de comenzar a usar mecanografiado para reaccionar nativo, pero no ha sido fácil hasta ahora, me resulta difícil realizar una función común como buscar una API una vez en la carga de la pantalla, a continuación se muestra la función actual que estoy usando pero no quiero usar se agota el tiempo de espera y ni siquiera funciona correctamente (tiene que esperar el tiempo real que configuré antes de que se ejecute y es malo para Android), me gustaría llamar a la función solo una vez cuando se carga la página, también he intentado usar if else declaraciones, pero no sé por qué no solo funciona en mecanografiado.
(function(){ setTimeout(function () { const newsUrl = 'http://172.20.10.4:8000/mobile/news'; return fetch(newsUrl, { method: 'GET', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Cache-Control': 'no-cache' } }) .then((response) => response.json()) .then((data) => { let newArr = [...data]; setProducts(newArr); //console.log(data); alert(38783763); }) .catch((error) => { alert(error); console.error(error); }); }, 200); }.call(this));Puede usar el gancho useEffect y pasar una matriz vacía para obtener datos una vez que se carga.
useEffect(() => { fetch(newsUrl, { method: 'GET', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Cache-Control': 'no-cache' } }) .then((response) => response.json()) .then((data) => { let newArr = [...data]; setProducts(newArr); }) }, []);