是否可以在NGRX上创建非内存化选择器?
我有一个非常小的选择器来检查存储中的值是否大于date.now()。
export const selectAuthState = createFeatureSelector<AuthState>('auth');
export const hasTimeout = createSelector(
selectAuthState,
state => state.timeout < Date.now()
);
如预期的那样,此选择器不有用,因为除非更改
timeout
。是否有任何方法使选择器非内存化,以便每次访问其值时都重新计算它?
我目前的解决方案是创建一个选择器工厂,每次都使用它,但我认为它不是最佳解决方案:
export const hasTimeoutFactory = () => createSelector(
selectAuthStatusState,
state => state.timeout < Date.now()
);
另一个解决办法是
export const didTimeout = pipe(
select(getTimeout), // using memoized value
map(val => val < Date.now())
);
然后导入这个管道。