2017-10-26 6 views
0

私はstandart VisualStudio 2017 ASP.NET Core 2.0 React Templateを使用します。 私はテンプレートからクラスHomeを持っている:React TypeScriptどのように配列をルートにバインドするのですか?

import { RouteComponentProps } from 'react-router'; 

export class Home extends React.Component<RouteComponentProps<{}>, {}> { 
    public render() { 
     return <div> 
      <h1>Hello, world!</h1> 
     </div>; 
    } 
} 

私はroutesData配列を作ると「レイアウト」路線へHomeのようなコンポーネントをバインドする必要があります。ここに私の試しコードがあります:

interface RouteDataItem { 
    path: string; 
    exact: boolean; 
    main:() => Element; 
} 

export const routesData = [ 
    { 
     path: '/', 
     exact: true, 
     main:() => <Home /> 
    }, 
    { 
     path: '/counter', 
     main:() => <Counter /> 
    }, 
    { 
     path: '/fetchdata', 
     main:() => <FetchData /> 
    } 
] 

export const routes = <Layout> 
    {routesData.map((route, index) => { 
     return <Route exact={route.exact} key={index} path={route.path} component={route.main} />; 
    }} 
</Layout>; 

どうすればいいですか? VisualStudioのは、エラーこの行のProperty "match" is absent in type "{}"

main:() => <Home /> 

<Home />が赤い下線である私を示しています。

答えて

0

ご自宅のコンポーネントがRouteComponentPropsをuseingされているため、[OK]をVisual StudioでRouteComponentProps

+0

をクリック+ Ctrlキー場合は、よりおよそRouteComponentPropsプロパティを参照することができます

その性質として、あなたは<home />RouteComponentPropsのプロパティを追加する必要があります。わかりました。 'main:(???)=>'しかし、 '???'と書かれた場所には何を書きますか? –

+0

が働いた: 'メイン:(マッチ:一致、場所:H.Location、歴史:H.History)=><ホーム・マッチ= {マッチ}場所= {場所}履歴= {履歴} />' 'インポート*として歴史からのH; –

関連する問題