如果Angular ngrx 8的selector没有返回任何值,可以尝试以下解决方法:
示例代码:
// 定义selector
const selectData = createSelector(
selectFeature, // selectFeature为state中的某个属性
(state: FeatureState) => state.data
);
// 在组件中使用selector
this.data$ = this.store.pipe(select(selectData));
示例代码:
export interface FeatureState {
data: any; // 确保data属性已经初始化
}
const initialState: FeatureState = {
data: null // 初始化为null或其他初始值
};
export function reducer(state = initialState, action: any): FeatureState {
// reducer逻辑
return state;
}
示例代码:
{{ data$ | async }}
// 在组件中使用ngOnInit订阅数据
ngOnInit() {
this.data$.subscribe(data => {
// 处理数据
});
}
示例代码:
const selectData = createSelector(
selectFeature,
(state: FeatureState) => {
console.log(state.data); // 确认数据流向
return state.data;
}
);
通过以上方法,可以解决Angular ngrx 8 selector没有返回任何值的问题。确保selector的定义和用法正确,state的初始化正确,订阅数据的时机正确,数据的流向正确。