2017-06-25 3 views
3

存在しない私は、この.tsxファイルを持っている活字体プロパティ「小道具」の

import React, { Component } from 'react'; 

export class SidebarItem extends Component { 
    constructor (props) { 
     super(props); 
    } 

    render() { 
     return (<li>{this.props.children}</li>); 
    } 
} 

しかし、活字体は、このエラーがスローされます。 error TS2339: Property 'props' does not exist on type 'SidebarItem'.

+0

「this.props.children」はReactによって自動的に設定されると考えられるためです。これは、コンポーネントに渡されたものにアクセスする方法です。 <リンクへ= {パス}> {パス}

+0

また 'コンストラクタ(小道具){スーパー(小道具)。 this.props = props; } 'サイドバーアイテムに 'props'が存在しないというエラーがスローされます –

+1

答えはまだ見つかりましたか?私はtsc v2.3.4で同じ問題を抱えています。あなたはTypeScriptでReact Class Componentを書くための良いリンクを持っていますか? – olefrank

答えて

2

あなたが反応コンプを書いて、以下の方法を試すことができます。

interface SidebarItemProps 
{ 
    children: any 
} 

class SidebarItem extends React.Component<SidebarItemProps, any> { 
    //your class methods 
} 

More about using React in TypeScript

0

コンポーネントが何も状態を持っていない場合は、すべてでクラスを使用する必要はありません。また、ステートレス反応コンポーネント(SFC)をfor this questionとして使用することもできます。

const MyStatelessComponent : React.StatelessComponent<{}> = props => 
    <li>{props.children}</li>; 

またはあなたのマークアップが巨大になっている場合:

const MyStatelessComponent : React.StatelessComponent<{}> = props => { 

    return <li>{props.children}</li>; 

} 
+0

これは有効であり、確かに悪いアドバイスではありませんが、本当にその質問には答えません。このソリューションは、問題を解決するのではなく、問題を回避するだけです。 –

1

ソリューションが反応タイプdefintions typescript docsからとtypes repo

から

yarn add -DE @types/react 

詳細をインストールすることです

サイドノートで、私はtのためにvscodeを再起動しなければならなかった彼は適切に蹴りだすことを願っている。