Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatically unsubscribing from DecoratorsStore in SearchPage. #3363

Merged
merged 1 commit into from Jan 18, 2017
Merged

Conversation

@dennisoelkers
Copy link
Member

@dennisoelkers dennisoelkers commented Jan 16, 2017

Description

Motivation and Context

Before this change, every mount of the SearchPage component included
subscribing to several DecoratorsActions. During an unmount of the
component, no unsubscribing from the actions took place, leaving
dangling calls to a function of an unmounted component behind.

This PR changes the way these actions are subscribed to and uses Reflux
mechanisms to handle unsubscribing automatically.

Fixes #3355.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
Before this change, every mount of the SearchPage component included
subscribing to several DecoratorsActions. During an unmount of the
component, no unsubscribing from the actions took place, leaving
dangling calls to a function of an unmounted component behind.

This PR changes the way these actions are subscribed to and uses Reflux
mechanisms to handle unsubscribing automatically.

Fixes #3355.
@@ -30,6 +30,7 @@ const SearchPage = React.createClass({
Reflux.connect(CurrentUserStore),
Reflux.listenTo(InputsStore, '_formatInputs'),
Reflux.listenTo(RefreshStore, '_setupTimer', '_setupTimer'),
Reflux.listenTo(DecoratorsStore, '_refreshDataFromDecoratorStore', '_refreshDataFromDecoratorStore')

This comment has been minimized.

@joschi

joschi Jan 18, 2017
Contributor

Why are we using strings here instead of a function handle?

Reflux.listenTo(DecoratorsStore, this._refreshDataFromDecoratorStore, this._refreshDataFromDecoratorStore);

This comment has been minimized.

@dennisoelkers

dennisoelkers Jan 18, 2017
Author Member

This is the standard way of 0.2.x reflux, unfortunately.

This comment has been minimized.

@joschi

joschi Jan 18, 2017
Contributor

Strange, the other examples on that page also use normal function references instead of strings.

But for the sake of conformity with the rest of our codebase, using single-quoted strings is fine.

@joschi joschi self-assigned this Jan 18, 2017
@joschi
joschi approved these changes Jan 18, 2017
@joschi joschi merged commit 30fbeaf into master Jan 18, 2017
4 checks passed
4 checks passed
@garybot2
ci-web-linter Jenkins build graylog-pr-linter-check 1284 has succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
continuous-integration/travis-ci/push The Travis CI build passed
Details
licence/cla Contributor License Agreement is signed.
Details
@joschi joschi deleted the issue-3355 branch Jan 18, 2017
@joschi joschi modified the milestones: 2.2.0, 2.x Jan 18, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

2 participants