ngrx如何从商店获取嵌套的属性值

你好,世界

嗨,我是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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章