store
store copied to clipboard
Select fires on unrelated store changes.
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.