В моей ситуации у меня должен быть только список массивов с моими публикациями. Но я получил 2 списка, первый пустой, а второй - мой настоящий список.
Я не использую async в своем html, это просто ngfor, которое я беру из моей подписки.
В моем ngOnInit:
this.publication$ = this.store$.pipe(
skipWhile(val => val == null),
select(PublicationFeatureStoreSelectors.selectAllPublicationFeatureItems),
filter(value => value !== undefined),
);
this.publication$.subscribe(data => {
takeUntil(this.ngDestroyed$),
this.piins = data;
this.publicationAppeared = data.map(a => a._id);
this.checkIfLiked();
console.log(data);
});
В моем ngOnDestroy:
this.ngDestroyed$.next();
this.ngDestroyed$.complete();
Мой селектор
export const selectAllPublicationsFeatureItems: (
state: object
) => Publications[] = featureAdapter.getSelectors(selectPublicationsFeatureState).selectAll;
export const selectPublicationsFeatureState: MemoizedSelector<
object,
State
> = createFeatureSelector<State>('publicationFeature');
Это мой результат:
[]
(3) [{…}, {…}, {…}]
Это у меня в редукторе:
case ActionTypes.GET_PUBLICATION_SUCCESS: {
const myobject = featureAdapter.addAll(action.payload, {
...state,
isLoading: false,
error: null
});
console.log(myobject); // the result is just below
return myobject;
}
Результат console.log:
{ids: Array(3), entities: {…}, isLoading: false, error: null}
entities: {5d0261c743d8c30793eb8d25: {…}, 5d01713c7f353a1a81349299: {…}, 5d0170a67f353a1a81349295: {…}}
error: null
ids: (3) ["5d0261c743d8c30793eb8d25", "5d01713c7f353a1a81349299", "5d0170a67f353a1a81349295"]
isLoading: false
__proto__: Object
Результат точно такой же, как у меня на reduxTool
Если у вас есть решение не использовать и не вызывать первый список массивов, большое спасибо.
Мне почти нужно использовать мой метод checkIfLiked () только один раз