• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

140
Vistas
Llamar a una función importada de otro archivo

Tengo una función que declaré en un archivo, como esta

 export default function doSomething (param1, param2, param3) { *Do something here* }

Y luego quiero usar esa función cada vez que presiono un botón en una pantalla que he declarado en otro archivo:

 import doSomething from '../../doSomething'; export default function Screen(props) { return ( <Container> <SafeAreaProvider> <Button onPress={() => doSomething(1, 2, 3)} /> </SafeAreaProvider> </Container> ); }

Sin embargo, cada vez que presiono el botón, aparece una Invalid hook call. Hooks can only be called inside of the body of a function component . Soy bastante nuevo en ganchos personalizados/funciones externas, entonces, ¿cómo puedo resolverlo?

over 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si doSomething es un enlace y no una función simple de JS, entonces no puede simplemente importarlo y llamarlo como lo haría con funciones simples.

El siguiente código soluciona el problema.

 export default function useDoSomething() { ... const doSomething = React.useCallback((parameter1, parameter2, parameter3) => {}, []) return { doSomething, } }

Luego use el gancho de la siguiente manera.

 const { doSomething } = useDoSomething() return ( <Container> <SafeAreaProvider> <Button onPress={() => doSomething(1, 2, 3)} /> </SafeAreaProvider> </Container> );
over 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda