嗨,我是angular ngrx的新手。
请帮忙,因为我不了解如何在ngrx中从mt reducer获取嵌套属性值。
在下面的代码中:如何从我的reducer获取this.todoData $ .data值?
import { Component, OnInit } from '@angular/core';
import { Store, select } from '@ngrx/store';
import { Observable } from 'rxjs';
import { increment, decrement, reset } from '../stateMan/actions/counter.actions';
import TodoItem from '../../models/TodoItem'
interface IStore {
count: number,
todo: {
data : number
}
}
@Component({
selector: 'app-counter',
templateUrl: './counter.component.html',
styleUrls: ['./counter.component.scss']
})
export class CounterComponent implements OnInit {
count$: Observable<number>;
todoData$: Observable<any>;
constructor(private store: Store<IStore>) {
this.count$ = store.select('count');
this.todoData$ = store.select('todo');
}
`//////// HOW??????
increment() {
// How do I get this.todoData$.data????
console.log('show todo data', this.todoData$.data)
}
}
我认为推荐的方式(以及我遵循的方式)是使用featureSelector。
我可以定义如下-
export const selectTodo = createFeatureSelector<IStore, TodoState>('todo');
在哪里,TodoState可以是-
Interface TodoState = {
data : number
}
之后,您可以创建选择器以选择数据-
const selectTododata = createSelector(
selectTodo,
(state: TodoState) => state.data
);
然后在组件中,您可以使用它来选择-
this.todoData$ = store.select(selectTododata);
希望对您有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句