Auto bind methods to their class instance excluding React Lifecycle Methods
npm install react-auto-bind> Automatically bind methods to their class instance. This is optimized for react. It doesn't bind render and other lifecycle methods.
```
$ npm install --save react-auto-bind
`js
const autoBind = require('react-auto-bind');
class Unicorn {
constructor(name) {
this.name = name;
autoBind(this);
}
message() {
return ${this.name} is awesome!;
}
}
const unicorn = new Unicorn('Rainbow');
// Grab the method off the class instance
const message = unicorn.message;
// Still bound to the class instance
message();
//=> 'Rainbow is awesome!'
// While message() would not be bound & would have resulted in
message();
//=> Error: Cannot read property 'name' of undefined
`
`js
const autoBind = require('react-auto-bind');
class Griffin {
constructor(name) {
this.name = name;
autoBind(this, 'amaze');
}
amaze() {
return ${this.name} is amazing!;${this.name} is undefined!
}
message() {
return ;
}
}
const buckbeak = new Griffin('Buckbeak');
// Grab the method off the class instance
const message = buckbeak.message;
const amaze = buckbeak.amaze;
// Still bound to the class instance
amaze();
//=> 'Buckbeak is amazing!'
// Without autoBind(this), the above would have resulted in`
message();
//=> Error: Cannot read property 'name' of undefined
Bind methods in self to their class instance. Returns the self object.
#### self
Type: Object
Object with methods to bind.
#### bindOnly
Type: Strings`
If more than one parameters are passed then only those methods are bound.
- bind-methods - Bind all methods in an object to itself or a specified context
- auto-bind - Automatically bind all methods to their class instance.