Выбор элемента по id из магазина в угловых
У меня есть следующие данные в магазине:
{
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 ответ
Попробуй это:
this.property = this.store.select((state) => state.properties)
.pipe(map(properties => properties.find(x => x_.id == this.id)));
Это должно работать для вашего сценария. Вы просто выбираете свойства из магазина, а затем возвращаете первое свойство, соответствующее вашему идентификатору.