Ich baue eine React-App in Typescript, und ich bekomme den folgenden Fehler für jede Komponente, die ich in meinen Router aufnehmen möchte.React.Component kein ReactType
ERROR in [at-loader] ./src/scripts/components/AppRouter.tsx:14:25
TS2322: Type 'typeof "E:/Programming Projects/free-food-app/src/scripts/components/OverviewPage"' is not assignable to type 'ReactType'.
Type 'typeof "E:/Programming Projects/free-food-app/src/scripts/components/OverviewPage"' is not assignable to type 'StatelessComponent<any>'.
Type 'typeof "E:/Programming Projects/free-food-app/src/scripts/components/OverviewPage"' provides no match for the signature '(props: any, context?: any): ReactElement<any>'
Ich verstehe das überhaupt nicht. Es scheint, als ob eine Klasse, die React.Component erweitert, in der Lage sein sollte, in den Router aufgenommen zu werden. Warum bekomme ich diese Fehler?
AppRouter.tsx:
import * as React from 'react';
import { Router, Route, hashHistory } from 'react-router';
import * as OverviewPage from './OverviewPage';
import * as AssignmentViewPage from './AssignmentViewPage';
import * as SubmissionEditPage from './SubmissionEditPage';
import * as SubmissionSubmitPage from './SubmissionSubmitPage';
import * as SubmissionViewPage from './SubmissionViewPage';
export default class AppRouter extends React.Component<any, any> {
public render() {
return (
<Router history={hashHistory}>
<Route path="/" component={OverviewPage}/>
<Route path="/assingment" component={AssignmentViewPage}/>
<Route path="/submission/edit" component={SubmissionEditPage}/>
<Route path="/submission/submit" component={SubmissionSubmitPage}/>
<Route path="/submission/" component={SubmissionViewPage}/>
</Router>
);
}
}
Edit: OverviewPage.tsx
import * as React from 'react';
class OverviewPage extends React.Component<any, any> {
public render() {
return (
<div>
<p>Overview</p>
</div>
);
}
}
export { OverviewPage }
Welche Arten von Requisiten und Status jeder Komponente werden an den Router weitergeleitet? –
Können Sie eine Ihrer Komponenten (OverviewPage) veröffentlichen? Deine Importe scheinen merkwürdig, warum importierst du alles als *? – soywod
@soywod Ich begann mit dem Import als 'Import OverviewPage from' ./OverviewPage '; '. Die Fehlermeldung wurde in "TS2322: Type" geändert {OverviewPage: typeof OverviewPage; } 'kann nicht dem Typ' ReactType 'zugewiesen werden. Objektliteral darf nur bekannte Eigenschaften angeben, und "OverviewPage" existiert nicht im Typ "ReactType". – Prichmp