Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

231
Vistas
Cómo devolver datos en otra función desde una consulta SQLite en React Native

Soy nuevo en React Native, estoy tratando de extrapolar datos de una consulta, pero "return" no funciona. Tal vez porque requería las promesas, lo intenté pero no soy lo suficientemente bueno. Llamo a la función en el componente Ver de la función de la aplicación (en App.js) así

 <View>Search()</View>

pero no se muestra nada. Si pongo console.log en search() (en otra función) puedo ver el resultado, pero no puedo devolverlo en mi App.js (la función se importa correctamente a la aplicación)

 export function Search() { db.transaction( (tx) => { tx.executeSql("select pver from profile where id=12524234", [], (tx, results) => { var a = JSON.stringify(results.rows._array[0].pver) var data = Number(a) return data; }); }, null, ) };

Así es como lo he intentado hacer por consejo de un usuario.

 //this in App.js import {Search} from './Funzioni' export default function App() { const [searchResult, setSearchResult] = useState(); useEffect(() => { console.log("we are in the useeffect") Search().then((data)=>{ console.log("set") //doesn't appear setSearchResult(data) }) },[]); //other codes return (<View>{searchResult}</View> ) } //this in "Funzioni.js" export async function Search() { return new Promise((resolve, reject) => { db.transaction( (tx) => { tx.executeSql("select pver from profile where id=12524234", [], (tx, results) => { var a = JSON.stringify(results.rows._array[0].pver) var data = Number(a) console.log("the data: " + data) //doesn't appear resolve(data); }); }, null, ) }); };
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El método de transacción es asíncrono cuando representa su componente, la función de búsqueda aún no se ha resuelto.

En su componente, debe usar useState para almacenar los datos y useEffect para obtener los datos

 const [searchResult, setSearchResult] = useState(''); useEffect(() => { Search().then((data)=>{ setSearchResult(data) }).catch((error) => console.log(error)); },[]); return <View>{searchResult}</View>

Su función de búsqueda debería ser así

 export async function Search() { return new Promise((resolve, reject) => { const db = SQLite.openDatabase('THE_NAME_OF_YOUR_DATABASE.db') db.transaction( (tx) => { tx.executeSql("select pver from profile where id=12524234", [], (tx, results) => { var a = JSON.stringify(results.rows._array[0].pver) var data = Number(a) resolve(data); }, function (error) { reject(false); throw new Error( 'Error: ' + error ); }); }, function (error) { reject(undefined); throw new Error('error: ' + error.message); }, function () { console.log('ok'); } ) }); };
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda