es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La función llamada desde el Context no funcionaría (React)

Estoy utilizando Context para llamar a la función helloWorld en mi aplicación de React. Funciona en onClick, pero por alguna razón no funciona cuando la defino en una función.

export const TestProvider = () => {
  const helloWorld = () => console.log('hello world');

  return (
    <testcontext.provider value="{{" helloworld="" }}="">
  )}</testcontext.provider>
}

export const useTestContext = () => {
  const context = useContext(TestContext);
  return context;
}

Funciona

const { helloWorld } = useTestContext();

return (
  <button onclick="{helloWorld}"></button>
)

No funcionaría

const { helloWorld } = useTestContext();

const handleHelloWorld = async () => {
    await helloWorld();
}

¿Cómo puedo arreglar para que funcione handleHelloWorld aquí?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para solucionar handleHelloWorld, necesitas invocar la función helloWorld en lugar de simplemente pasarla. Puedes modificar la función para que funcione correctamente con async/await de la siguiente manera:

    const { helloWorld } = useTestContext()
    
    const handleHelloWorld = async () => {
      await helloWorld()
    }
    

    Observa la adición de paréntesis después de helloWorld, lo cual realmente invoca la función. Sin estos paréntesis, helloWorld es solo una referencia al objeto de la función en sí, por lo cual no funciona como se espera.

Comments are closed.