diff --git a/app/assets/javascripts/discourse/app/components/discovery-topics-list.js b/app/assets/javascripts/discourse/app/components/discovery-topics-list.js index 4821ade3736..2de7ed73ef7 100644 --- a/app/assets/javascripts/discourse/app/components/discovery-topics-list.js +++ b/app/assets/javascripts/discourse/app/components/discovery-topics-list.js @@ -27,12 +27,16 @@ export default Component.extend(UrlRefresh, LoadMore, { @on("didInsertElement") _monitorTrackingState() { - this.topicTrackingState.onStateChange(() => this._updateTrackingTopics()); + this.stateChangeCallbackId = this.topicTrackingState.onStateChange(() => + this._updateTrackingTopics() + ); }, @on("willDestroyElement") _removeTrackingStateChangeMonitor() { - this.topicTrackingState.offStateChange(this.stateChangeCallbackId); + if (this.stateChangeCallbackId) { + this.topicTrackingState.offStateChange(this.stateChangeCallbackId); + } }, _updateTrackingTopics() {