store icon indicating copy to clipboard operation
store copied to clipboard

Select fires on unrelated store changes.

Open DejayJD opened this issue 5 years ago • 0 comments

This is a...

  • [ ] feature request
  • [x] bug report
  • [x] usage question

What toolchain are you using for transpilation/bundling?

  • [x] @angular/cli
  • [ ] Custom @ngTools/webpack
  • [ ] Raw ngc
  • [ ] SystemJS
  • [ ] Rollup
  • [ ] Other

Environment

NodeJS Version: v10.10.0 Typescript Version: 3.1.1 Angular Version: 7.0.0 @angular-redux/store version: ^9.0.0 @angular/cli version: (if applicable) ~7.0.4 OS: Mac High Sierra

Actual Behaviour:

Any update to a store will trigger another round of .select, even if that specific data has not changed. For example: ngRedux.select(['MyStore', 'myData']).subscribe(....) with the following states: State 0:

{ //Root
	MyStore: {
		myData:{data:null},
		someOtherData:{data:null}
	}
}

State 1 - triggers select to fire (expected, since myData has been updated):

{ //Root
	MyStore: {
		myData:{data:"SomeData"},
		someOtherData:{data:null}
	}
}

State 2 - triggers select to fire (unexpected, since myData has not been updated):

{ //Root
	MyStore: {
		myData:{data:"SomeData"},
		someOtherData:{data:"OtherDataUpdated"}
	}
}

Expected Behaviour:

ngRedux.select(['MyStore', 'myData']).subscribe(....) should only fire subscriptions when there are changes to myData not changes to MyStore overall. In the example above, State 2 should not trigger my subscription.

Additional Notes:

I'm marking this as both a usage question and a bug because I'm not sure if this is just an issue with the store as a whole, or if there is some way I need to have configured my store or I can be doing something different in my implementation.

DejayJD avatar Apr 09 '19 15:04 DejayJD