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

271
Views
¿Por qué la función de la clase de servicio no funciona desde useContext?

Estoy tratando de pasar el servicio como contexto y luego usarlo en la aplicación, pero aparece el error "service.getItems no es una función". ¿Qué está mal? Sé que podría importarlo y usarlo, pero estoy tratando de aprender el contexto. Esto funciona para funciones normales, pero no de clase.

 import React, {useContext} from "react"; import { createRoot } from "react-dom/client"; const rootElement = document.getElementById("root"); const root = createRoot(rootElement); class Service { getItems() { return [1, 2, 3]; } } const ServiceContext = React.createContext(); const App = () => { const service = useContext(ServiceContext) return <h1>{service.getItems()}</h1>; // service.getItems is not a function }; root.render( <ServiceContext.Provider value={Service}> <App /> </ServiceContext.Provider> );
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Este error no está relacionado con React o React Context, debe declarar un método como estático si desea llamarlo como: ClassName.method

 class Service { static getItems() { return [1, 2, 3]; } } Service.getItems() //[1,2,3]

O puede crear una instancia de su clase antes de pasarla al contexto:

 root.render( <ServiceContext.Provider value={new Service()}> <App /> </ServiceContext.Provider> );

Ahora puede acceder al método de instancia como lo intentaba sin que sea estático.

about 4 years ago · Juan Pablo Isaza Report
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!