NGRX правильное использование селекторов магазина - PullRequest
0 голосов
/ 22 сентября 2018

Я использую Ngrx в своем приложении для хранения состояния.Допустим, в моем магазине есть два элемента itemA и itemB.Мой componentX реагирует на изменение в itemA и запускает функцию, которая дополнительно выполняет некоторые более сложные вычисления, для которых требуется текущее значение itemB

ComponentX {
    pi = 3.15;
    date = new Date();
    constructor(private appStore: Store<AppState>){}
    ngOnInit() {
         this.appstore.select(selectItemA).subscribe(
             (itemA) => someComplexFunction(itemA)
         )
    }
    someComplexFunction(itemA) {
        /* Requires itemB */
    }
}

Однако для componentX неважно, когда itemB изменяется, ему требуется только текущее значениеэлемента B, когда элемент A изменяется.Я не могу удалить itemB из моего состояния, как этого требуют другие компоненты.Как правильно написать селектор в этом случае.

1 Ответ

0 голосов
/ 22 сентября 2018

вы можете использовать оператор withLatestFrom.

что-то вроде withLatestFrom(this.appstore.select(selectItemB)), что даст вам B.

, посмотрите на этот пример, где то же самоесделано в эффектах: https://gist.github.com/vteivans/da5adf19a94da9e32d27cb8b9d5b8884

(принцип тот же)

...