Skip to content

Instantly share code, notes, and snippets.

@Fallenstedt
Forked from puranjayjain/EmittingComponent.js
Created April 6, 2017 03:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fallenstedt/4c44661e5d5d10425d26ab6c12747cc5 to your computer and use it in GitHub Desktop.
Save Fallenstedt/4c44661e5d5d10425d26ab6c12747cc5 to your computer and use it in GitHub Desktop.
Using fbemitter-https://github.com/facebook/emitter/ (An event emitter) with React + ES6
import React from 'react'
import mrEmitter from '../helpers/mrEmitter'
export default class EmittingComponent extends React.Component {
handleClick = () => {
mrEmitter.emit('onSomeEvent', 'foo sends bar')
}
render() {
return (
<div>
<button onTouchTap={this.handleClick}>foo</button>
</div>
)
}
}
import React from 'react'
import mrEmitter from '../helpers/mrEmitter'
// remove this subscription afterwards when there is no use for it
let Subscription = null
export default class EventUser extends React.Component {
// register all adding stuff here
componentWillMount() {
Subscription = mrEmitter.addListener('onSomeEvent', (data) => {
console.log(data)
});
}
// unregister all references here
componentWillUnmount() {
Subscription.remove()
}
render() {
return (
<div>
Bar
</div>
)
}
}
// declare the event emitter var here to be useed everywhere in your app
import { EventEmitter } from 'fbemitter'
// mr Emitter is your friendly next door emitter
const mrEmitter = new EventEmitter()
export default mrEmitter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment