2017-09-12 5 views
0

私のコンポーネントには、何らかの措置をとるようにしています(最終的にはポップアップによるユーザーログインなど)。アクションを含むコンポーネントの使用方法は?エラーが発生しました "タイプ '{}'は 'IntrinsicAttributes'タイプに割り当てられません

私はこれを行うにしようと私のlayouts.tsxで
import { Component } from 'react'; 
import * as React from 'react'; 
import { connect } from 'react-redux'; 


class Props 
{ 
    dostuff() 
    { 

    } 
} 

export class Test extends Component<Props, {}> { 
    public render() { 
     return (<div>lol</div>); 
    } 
} 

:[AT-ローダー]で

ERROR ..小道具の私の行動を好まない反応するよう

import * as React from 'react'; 
import { NavMenu } from './NavMenu'; 
import { Test } from '../test/test' 
import { Component } from 'react'; 

export class Layout extends React.Component<{}, {}> { 
    public render() { 
     return <div className='container-fluid'> 
      <div className='row'> 
       <div className='col-sm-3'> 
        <NavMenu /> 
       </div> 
       <div className='col-sm-9'> 
        <Test /> 
        {this.props.children} 
       </div> 
      </div> 
     </div>; 
    } 
} 

しかし見えます./ClientApp/cコンポーネント/ Layout.tsx:16:21 タイプ '{}'はタイプ 'IntrinsicAttributes'に割り当てられません。& IntrinsicClassAttributes & Readonly < {children ?: ReactNode; }> & 続きを読む... '。タイプ '{}'はタイプ 'Readonly'に割り当てられません。 プロパティ 'dostuff'がタイプ '{}'にありません。

私の小道具は、通常、文字列またはブール値であり、私は問題なしに除外します。どのように機能で動作させるのですか?これが不可能な場合は、コンポーネントの他の場所に置くことができますか?

答えて

2

問題は、Reactがあなたの行動を非常に気に入っていますが、<Test/>には提供していないということです。メソッドをLayoutに追加し、<Test dostuff={this.dostuff}/>を使用すると、正常に動作するはずです。また、クラスを宣言したいので、クラスの代わりにインターフェイスPropsを宣言したいと思うかもしれません。

+0

Reactがどのように正確に機能するのかよく分かりません。小道具を使用せずにコンポーネントにアクションを公開する方法を調べる必要があります。これは私が自分自身を教えるためにビジュアルスタジオのテンプレートから外に出ていたので私を得ました... – tweetypi

関連する問題