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

Conversation

Projects
None yet
2 participants
@dennisoelkers
Member

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.
Automatically unsubscribing from DecoratorsStore in SearchPage.
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.

@dennisoelkers dennisoelkers added this to the 2.x milestone Jan 16, 2017

@@ -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

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

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