2017-12-25 16 views
1

Ich habe versucht, einige Routing in meiner App mit Typoskript schreiben, aber ich habe ein Problem mit Redirect-Komponente. Dies ist mein Code:React Router 4 mit Typescript, Redirect

export interface Props { 

} 

const Routes = (props:Props) => (
<Switch> 
    <Route path="/login" component={Login}/> 
    <Route path="/" component={Home}/> 

    <Redirect to="/login" component={Login}/> 

</Switch> 
); 

export default Routes; 

Dann wird der Compiler die folgenden Fehler:

(20,33): error TS2339: Property 'component' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly<{ children?: ReactNode; }> & ...'.

Sie mir sagen, wo das Problem ist oder wie kann ich die Umleitung tun, wenn URL mit nicht vergleichen meinem Router?

+0

Entfernen Sie die Komponente "Komponente" in ''. Rendern einer wird zu einem neuen Speicherort navigieren. Der neue Speicherort überschreibt den aktuellen Speicherort im Verlaufsstapel, wie serverseitige Weiterleitungen (HTTP 3xx). – arpl

Antwort

0

Um zu sehen, welche Eigenschaften Sie auf der Redirect Komponente festlegen können Sie einen Blick auf die Typdefinition der RedirectProps von @ nehmen müssen Typen/reagieren-Router

... 
export interface RedirectProps { 
    to: H.LocationDescriptor; 
    push?: boolean; 
    from?: string; 
    path?: string; 
    exact?: boolean; 
    strict?: boolean; 
} 
... 

diese Schnittstelle für component keine Eigenschaft definiert und so wird der ts-compiler einen fehler für component={Login} auslösen.

Es ist auch nicht sehr nützlich, eine andere Komponente zu einer Redirect zu geben, weil sie nur auf eine neue Route umleitet und keinen angezeigten Wert hat.