Remove SessionStore listener on unmount

This commit is contained in:
Luke Barnard 2017-05-15 17:17:32 +01:00
parent eb0041d21a
commit 269fd51130
2 changed files with 15 additions and 2 deletions

View file

@ -79,12 +79,17 @@ export default React.createClass({
document.addEventListener('keydown', this._onKeyDown);
this._sessionStore = sessionStore;
this._sessionStore.addListener(this._setStateFromSessionStore);
this._removeSSListener = this._sessionStore.addListener(
this._setStateFromSessionStore,
).remove;
this._setStateFromSessionStore();
},
componentWillUnmount: function() {
document.removeEventListener('keydown', this._onKeyDown);
if (this._removeSSListener) {
this._removeSSListener();
}
},
getScrollStateForRoom: function(roomId) {

View file

@ -69,11 +69,19 @@ module.exports = React.createClass({
componentWillMount: function() {
this._sessionStore = sessionStore;
this._sessionStore.addListener(this._setStateFromSessionStore);
this._removeSSListener = this._sessionStore.addListener(
this._setStateFromSessionStore,
).remove;
this._setStateFromSessionStore();
},
componentWillUnmount: function() {
if (this._removeSSListener) {
this._removeSSListener();
}
},
_setStateFromSessionStore: function() {
this.setState({
cachedPassword: this._sessionStore.getCachedPassword(),