в ngrx есть 2 способа (см. Следующий код) для параметризации селектора.
Вопрос: в чем разница между ними?
const getUser1 = () =>
createSelector(
getEntities,
(state, props) => state[props.id]
);
const getUser2 = id =>
createSelector(
getEntities,
state => state[id]
);
Я думаю, что запоминание отлично работает в обоих случаях.
и в статье ниже говорится ....
Если параметр не меняется со временем, мы можем использовать заводскую функцию
https://blog.angularindepth.com/ngrx-parameterized-selector-e3f610529f8
ки. эти селекторы используются следующим образом.
@Component({
selector: 'app-user-container',
template: ``
})
export class UserContainerComponent {
user1$ = this.store.pipe(select(getUser1(), { id: 1 }))
user2$ = this.store.pipe(select(getUser2(2)))
constructor(private store: Store<AppState>) {}
}
в обоих случаях (getUser1()
и getUser2(2)
), заводские функции оцениваются при инициализации класса (поэтому параметр не будет изменен для обоих селекторов).
Я не мог найти разницу в этом случае ....
когда getUser1
полезно?