0.0.5 • Published 8 years ago

react-fix-binds v0.0.5

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

@fixBind

Fix React autobind of legacy components in es6 class components

Usage

// Legacy React component
const LegacyComponent = React.createClass({
  boundMethod: function() {
    return this.props.a
  }
})

// Extending a legacy react component is a bit tricky because
// React adds all methods in createClass definition in "this"
// scope. So you can't access prototype methods (instance has
// precedence over prototype)
export class ExtendedLegacyComponent extends LegacyComponent {
  constructor (props, context, updater) {
    super(props, context, updater)
    // You must call fixBind in constructor to remove bound methods
    // that React adds using AutoBind
    fixBind(this)
  }

  @fixBind
  boundMethod () {
    // Now this function will be called
    // calling super method is valid
    return super.boundMethod() + this.props.b
  }
}