gpt4 book ai didi

angular - NgRx 选择器过滤器空值

转载 作者:太空狗 更新时间:2023-10-29 18:22:41 25 4
gpt4 key购买 nike

我们的网络应用加载 NgRx 存储中的值,这些值在初始状态下设置为 null。我正在寻找一种很好地过滤非空值的方法,因为我一直在组件中看到

this.myValue = this.store.pipe(
select(mySelector),
filter(notNull),
);

// where

const notNull = (data) => data !== null;

而且我认为这种代码重复,最好在选择器级别处理它。但我也对其他解决方案持开放态度。

我试过的一件事是自定义 createSelector:

import {createSelector, createSelectorFactory, defaultMemoize} from '@ngrx/store';

const isEqualOrNull = (a: any, b: any): boolean =>
a === b || b === null;

const createSelectorNotNull = createSelectorFactory((projectionFn) =>
defaultMemoize(projectionFn, isEqualOrNull));

不幸的是,这个解决方案不能处理初始的 null 值,只能处理更多的值。

对于这个看似常见的问题,是否有好的解决方案?

最佳答案

我不认为这是可能的,因为正如你第一次提到的那样,它不会使用你提供的比较函数,只是执行并返回结果。

为避免代码重复,您可以创建 your own pipeable operator .

关于angular - NgRx 选择器过滤器空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52189653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com