2017-12-13 4 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이 정의라고 가정하고하지만 난 그런 일이 수 있는지 모르겠어요 catch되지 않은 것입니다. VS를 빌드하기 전에 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"); 
     } 
    } 
} 
관련 문제