“this”在导出的反应函数中未定义

时间:2017-09-11 00:40:56

标签: javascript reactjs

问题:当我的React组件调用导出的函数时,console.log(this)显示为undefined。我期待它返回组件,因为我已经将它绑定在我的构造函数中。

Leaderboard.js:

import React from 'react';
import {leaderboard, createLeaderboard} from '../utility/gamecode';

class Leaderboard extends React.Component{
  constructor(props){
    super(props);
    this.showLeaderboard = showLeaderboard.bind(this);
    this.state = {
    }
  };

  componentDidUpdate(){
    if(this.props.leaderboard){
      showLeaderboard();
    }
  }

  render(){
    return(
      <div className="leaderboard hidden">
      </div>
    )
  }

}

export default Leaderboard;

gamecode.js:

export function showLeaderboard(){
 console.log(this);
}
//-----------------------
export function createLeaderboard(props){
}

1 个答案:

答案 0 :(得分:6)

您正在呼叫showLeaderboard而不是this.showLeaderboard - 您绑定this的人。{/ p>