Выбор элемента по id из магазина в угловых - PullRequest
0 голосов
/ 19 мая 2019

У меня есть следующие данные в хранилище:

{
 properties : 
  [
   {
    _id: 123.
    name: "Nice property"
   },
   {
    _id: 456.
    name: "Another nice property"
   }
 ]
}

В моем методе ngOnInit я хотел бы выбрать свойство из магазина, сопоставляя идентификатор, который был передан как queryParam, например:

javascript
this.id = this.route.snapshot.paramMap.get('id');
this.property = this.ngRedux.select( state => state.properties).pipe(find( property => property._id === this.id))

Очевидно, что это не работает, но оно улавливает дух того, что я пытаюсь сделать.

Поиск в Google по идентификатору с помощью ngRedux приносит очень мало, поэтому у меня есть подозрение, чтоЯ делаю это неправильно.

Я попытался разрешить это, используя .subscribe, однако тогда вся логика должна быть в обратном вызове подписки, что кажется неправильным и не работало, когда я пытался создать реактивную форму.

1 Ответ

0 голосов
/ 19 мая 2019

Попробуйте:

this.property = this.store.select((state) => state.properties)
    .pipe(map(properties => properties.find(x => x_.id == this.id)));

Это должно работать для вашего сценария.Вы просто выбираете свойства из магазина, а затем возвращаете первое свойство, соответствующее вашему идентификатору.

...