2017-12-13 2 views
0

私は自分の関数でアクセスできるクラスレベルの変数を持っています。私はこれがグローバル変数のように機能していると思ったが、これは初めてのことだ。これは私が今働いている単純化されたコードです:React/TypeScriptのクラス要素変数にアクセスする方法

class People extends React.Component<PeopleProps, {}> { 
    public isAdmin: boolean = false; 
    public render() { 
     return <div onClick={this._checkAdmin}>Call function</div>; 
    } 

    private _checkAdmin() { 
     if (this.isAdmin) { 
      console.log("is admin"); 
     } 
    } 
} 

if文でエラーが発生します。私は取得していますエラーがキャッチされない

TypeError: Cannot read property 'isAdmin' of null

である私はthisが定義されていないが、私はそれが起こることができるかわからないと仮定しています。これを構築する前にVSにエラーはありません。私は_checkAdmin関数に到達できるので、thisがそこで働いているようです。 '_checkAdmin'に引数を渡す必要がありますか?

答えて

0

この

class People extends React.Component<PeopleProps, {}> { 
    public isAdmin: boolean = false; 
    public render() { 
     return <div onClick={this._checkAdmin.bind(this)}>Call function</div>; 
    } 

    private _checkAdmin() { 
     if (this.isAdmin) { 
      console.log("is admin"); 
     } 
    } 
} 
0

を結合不在としては、あなたがこれをバインドするのを忘れ、クーパーを言いました。しかし、矢印機能を使用する場合、これについては気にしません。

class People extends React.Component<PeopleProps, {}> { 
    public isAdmin: boolean = false; 
    public render() { 
     return <div onClick={this._checkAdmin}>Call function</div>; 
    } 

    private _checkAdmin =() => { 
     if (this.isAdmin) { 
      console.log("is admin"); 
     } 
    } 
} 
関連する問題