Модуль '' Метеор / реагировать-Метеор-данные '' не имеет экспортированного члена 'withTracker'
Я пытаюсь перенести проект Meteor-React на TypeScript. У меня есть файл.tsx:
import { withTracker } from 'meteor/react-meteor-data';
class Header extends React.Component<any,any> {
...
}
export default withTracker(() => {
return {
...
};
})(Header);
Но я получаю сообщение об ошибке, даже если сайт отображается правильно:
Module ''meteor/react-meteor-data'' has no exported member 'withTracker'.
Работающие версии:
Local package version is up-to-date: babel-compiler@7.0.6
Local package version is up-to-date: babel-runtime@1.2.2
Local package version is up-to-date: barbatus:typescript@0.6.12
Local package version is up-to-date: barbatus:typescript-compiler@0.9.12
Local package version is up-to-date: barbatus:typescript-runtime@1.0.2
Local package version is up-to-date: ecmascript@0.10.6
Local package version is up-to-date: ecmascript-runtime@0.5.0
Local package version is up-to-date: ecmascript-runtime-client@0.6.2
Local package version is up-to-date: ecmascript-runtime-server@0.5.0
Local package version is up-to-date: meteor@1.8.6
Local package version is up-to-date: react-meteor-data@0.2.16
Спасибо за помощь.
1 ответ
Решение
react-meteor-data
Пакет не содержит информацию о типе. Этот репозиторий содержит типы для старых createContainer
, но репо не было обновлено withTracker
,
Я решил это путем включения .d.ts
файл где-то в проекте со следующим объявлением:
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>;
}