reactjs - El módulo ''meteor/react-meteor-data'' no tiene un miembro exportado 'withTracker'
Estoy intentando migrar mi proyecto Meteor-React a TypeScript. Tengo un archivo .tsx:
import { withTracker } from 'meteor/react-meteor-data';
class Header extends React.Component<any,any> {
...
}
export default withTracker(() => {
return {
...
};
})(Header);
Pero estoy recibiendo el error, aunque el sitio se muestra correctamente:
Module ''meteor/react-meteor-data'' has no exported member 'withTracker'.
Versiones en ejecución:
Local package version is up-to-date: [email
Local package version is up-to-date: [email
Local package version is up-to-date: barbatus:[email
Local package version is up-to-date: barbatus:[email
Local package version is up-to-date: barbatus:[email
Local package version is up-to-date: [email
Local package version is up-to-date: [email
Local package version is up-to-date: [email
Local package version is up-to-date: [email
Local package version is up-to-date: [email
Local package version is up-to-date: [email
Gracias por tu ayuda.
Respuesta #1
El paquete react-meteor-data no contiene información de tipos. Este repositorio contiene tipos para el antiguo createContainer, pero el repositorio no se ha actualizado con withTracker.
He resuelto esto incluyendo un archivo .d.ts en algún lugar del proyecto con la siguiente declaración:
declare module 'meteor/react-meteor-data' {
import * as React from 'react';
type RMDComponentConstructor<P> = React.ComponentClass<P> | React.StatelessComponent<P>
export function withTracker<InP, D, OutP extends (InP & D)>(
options: (props: InP) => D | {getMeteorData: (props: InP) => D, pure?: boolean}):
(reactComponent: RMDComponentConstructor<OutP>) => RMDComponentConstructor<InP>;
}