2017-12-25 15 views
1

私はtypescriptを使って自分のアプリでルーティングを書きましたが、リダイレクトコンポーネントに問題があります。これは私のコードです:React Router 4 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; 

はその後、コンパイラは、次のエラーがスローされます:問題があるか、URLは私のと比較されていない場合にどのように私はリダイレクトを行うことができる場所

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

あなたは私に言うことができますルータ?あなたはこのインターフェイスがcomponentのために定義されたプロパティを持たないタイプ@ /反応し、ルータを

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

からあなたがRedirectPropsの型定義を見てみましょうする必要がRedirectコンポーネントに設定可能なプロパティを表示するには

+0

''の 'component' propを削除してください。 をレンダリングすると、新しい場所に移動します。新しい場所は、サーバー側のリダイレクト(HTTP 3xx)のように、履歴スタック内の現在の場所を上書きします。 – arpl

答えて

0

tsコンパイラはcomponent={Login}のエラーを投げます。

Redirectに別のコンポーネントを指定すると、新しいルートにのみリダイレクトされ、表示される値がないため、あまり有用ではありません。