Что является эквивалентом энхансера-редуктора в NgRx? - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь реализовать функцию отмены / возврата в моем приложении с помощью @ ngrx / store.

Основные понятия описаны здесь (Redux): https://redux.js.org/recipes/implementing-undo-history

В какой-то моментв рецепте функция редуктора заключена в то, что в Redux называется редуктор-энхансер

Редуктор-энхансер (или редуктор более высокого порядка) - это функция, которая использует редуктори возвращает новый редуктор, который может обрабатывать новые действия или удерживать большее состояние, передавая управление внутреннему редуктору для действий, которые он не понимает.

Что является эквивалентом этогов NgRx?Как я могу построить Store ...

store.pipe(select('counter')); 

... но обернуть его внутри функции 'Enhancer'?Псевдокод:

undoable(store.pipe(select('counter'));

Кто-то указал мне на метаредукторы (https://ngrx.io/guide/store/metareducers),, но документы по этому вопросу не проясняют меня.

1 Ответ

0 голосов
/ 26 февраля 2019

Метаредукторы - правильный ответ здесь.Он имеет тот же API, что и документы-редукторы, получает редуктор и возвращает редуктор.Другим примером может быть случай использования для сброса состояния, когда пользователь выходит из системы.

enter image description here

...