在 ngrx 中使用带有 props 的选择器的替代方法是什么
What is the alternative to using selectors with props in ngrx
我正在 ngrx website 上阅读有关 selectors
的文章,我偶然发现 selectors
和 props
。
ngrx 团队表示它已被弃用,但他们没有提供替代方案。我想在我的应用程序中使用 selectors
和 props
。
除了使用带有 props 的选择器之外,还有其他选择吗?
如果有,我该怎么做?
通知中的“弃用”一词实际上是 link,但由于横幅的颜色,很难注意到。它 link 到 a GitHub Issue discussing selectors with props.
这个问题引起了人们的关注,因为 Angular 12+ 默认在 strict mode 中,开发人员可能 运行 在使用 props 的选择器的实现中存在缺陷 -即 prop 值不是强类型或可能类型不正确。
建议的方法是使用工厂选择器。本质上,不是将 props 作为选择器的参数传递,而是将 props 作为选择器定义的函数的参数。
所以代替:
export const getCount = createSelector(
getCounterValue,
(counter, props) => counter * props.multiply
);
const count = this.store.select(getCount, 5);
您将使用:
export const getCount = (multiply: number) => createSelector(
getCounterValue,
(counter) => counter * multiply
);
const count = this.store.select(getCount(5));
Gunnar B.'s comment helpfully links to a migration guide with a section about moving from selectors with props to factory selectors 如果您需要更多信息。
我正在 ngrx website 上阅读有关 selectors
的文章,我偶然发现 selectors
和 props
。
ngrx 团队表示它已被弃用,但他们没有提供替代方案。我想在我的应用程序中使用 selectors
和 props
。
除了使用带有 props 的选择器之外,还有其他选择吗?
如果有,我该怎么做?
通知中的“弃用”一词实际上是 link,但由于横幅的颜色,很难注意到。它 link 到 a GitHub Issue discussing selectors with props.
这个问题引起了人们的关注,因为 Angular 12+ 默认在 strict mode 中,开发人员可能 运行 在使用 props 的选择器的实现中存在缺陷 -即 prop 值不是强类型或可能类型不正确。
建议的方法是使用工厂选择器。本质上,不是将 props 作为选择器的参数传递,而是将 props 作为选择器定义的函数的参数。
所以代替:
export const getCount = createSelector(
getCounterValue,
(counter, props) => counter * props.multiply
);
const count = this.store.select(getCount, 5);
您将使用:
export const getCount = (multiply: number) => createSelector(
getCounterValue,
(counter) => counter * multiply
);
const count = this.store.select(getCount(5));
Gunnar B.'s comment helpfully links to a migration guide with a section about moving from selectors with props to factory selectors 如果您需要更多信息。