Я создаю проект с Angular 9 и NGRX, и у меня есть следующий компонент страницы:
@Component({
template: `
<div *ngFor="let post of posts$ | async">
{{ post.name }}
</div>
<top-posts></top-posts>
`
})
export class PostsPageComponent {
posts$: Observable<Post[]> = this.store.select(state => state.posts);
constructor(private store: Store<{ posts: Post[] }>) {}
ngOnInit() {
this.store.dispatch({ type: '[Posts Page] Load Posts' });
}
}
В этом компоненте у меня есть дочерний компонент, который отображает TopPosts.
Я считаю, что мне нужно добавить topPosts: Post[]
в свой магазин и действие «[Страница сообщений] Загрузить самые популярные сообщения».
Но как мне получить доступ к этим данным в моем дочернем компоненте?
Должен ли я ввести хранилище в дочерний компонент и использовать:
this.store.dispatch({ type: '[Posts Page] Load Top Posts' });
Должен ли я передавать данные из PostPageComponent в TopPostsComponent?
Как? И в этом случае следует ли мне изменить действие на «[Компонент популярных сообщений] Загрузить основные сообщения»?