Сколько раз вы делали это со своими классами Javascript?

import React, { Component, PropTypes } from 'react'
export default class SimpleButton extends Component {
  constructor(props) {
    super(props)
    this.greet = this.greet.bind(this)
  }
  
  greet() {
    console.log("It's working!")
  }
  
  render () {
    return (
      <button onClick={this.greet}>Log it!</button>
    )
  }
}

Вам действительно не нужно связывать свои функции вручную, как это. Проще, идиоматично и аккуратнее использовать закрытие, чтобы связать нужную среду.

import React, { Component, PropTypes } from 'react'
export default class SimpleButton extends Component {
  constructor(props) {
    super(props)
  }
  
  greet = () => {
    console.log("It's working!")
  }
  
  render () {
    return (
      <button onClick={this.greet}>Log it!</button>
    )
  }
}

Довольно здорово!