Sé que no es posible usar Hooks en Class Components, eso no es lo que estoy tratando de lograr.
Tengo un Contexto al que quiero acceder en una clase de servicio.
/* File MyComponent.tsx */ function MyComponent() { MyService.foo(); return ( <h1>Anything</h1> ) } /* File MyService.tsx */ class MyService { foo() { const [dispatch] = React.useContext(MyContext); dispatch({type: 'myaction'}); } } export default new MyService()Ya encontré una solución al pasar la devolución de llamada de envío del componente al método de servicio. Pero esto es bastante feo y tedioso.
function useMyServiceFoo(params) { const [dispatch] = React.useContext(MyContext); MyService.foo(dispatch, params); }Como esto funciona, me pregunto por qué no es así cuando llamo a useContext en los métodos de clase. ¿Hay alguna manera de que pueda hacer que funcione?