combine
Этот метод позволяет получить состояние из каждого переданного сторов и комбинировать их в одно значение, сохраняя в новом производном сторе. Полученный стор будет обновляться каждый раз, как обновляется любой из переданных сторов
Если несколько сторов обновятся одновременно, то метод обработает их всех разом, то есть combine
батчит обновления, что приводит к более эффективной работе без излишних вычислений
#
Общая формула#
Сочетание состояний#
combine( { a, b } )Комбинирует объект сторов в стор с объектом значений
#
Формула#
Аргументыshape
: Объект сторовОбновление любого из сторов означает изменение значения соответствующего поля в производном сторе
Количество сторов не ограничено
#
ВозвращаетНовый, производный стор
#
combine( [ a, b ] )Комбинирует массив сторов в стор с массивом значений
#
Формула#
Аргументыshape
: Массив сторовОбновление любого из сторов означает изменение значения соответствующего элемента в производном сторе,
количество сторов не ограничено
#
ВозвращаетНовый, производный стор
#
Трансформация состояний#
combine( { a, b }, ({ a, b }) => result )Трансформирует объект сторов через функцию, принимающую объект значений
#
Формула#
Аргументыshape
: Объект сторов. Количество сторов не ограниченоfn
:(values: {a: A; b: B}) => C
Функция-обработчик
Преобразует данные перед отправлением в производный стор,
должна быть чистойАргументы
values
: Объект значений
Возвращает: Новое значение для хранения в производном сторе
Если функция возвращает undefined или текущее состояние производного стора, то обновления не будет
#
ВозвращаетНовый, производный стор
#
combine( [ a, b ], ([ a, b ]) => result )Трансформирует массив сторов через функцию, принимающую массив значений
#
Формула#
Аргументыstores
: Массив сторов
Количество используемых сторов не ограниченоfn
:(values: [A, B]) => C
Функция-обработчик
Преобразует данные перед отправлением в производный стор,
должна быть чистойАргументы
values
: Массив значений
Возвращает: Новое значение для хранения в производном сторе
Если функция возвращает undefined или текущее состояние производного стора, то обновления не будет
#
ВозвращаетНовый, производный стор
#
combine( a, b, ( a, b ) => result )Трансформирует произвольное число сторов через функцию, принимающую соответствующее число значений в аргументах
#
Формула#
Аргументы...stores
: Аргументы со сторами, по одному стору на аргумент
В типах максимальное количество используемых сторов - 12, при превышении числа рекомендуется использовать вариант с массивомfn
:(...values: [A, B]) => C
Функция-обработчик
Преобразует данные перед отправлением в производный стор,
число аргументов зависит от числа переданных сторов.
Должна быть чистойАргументы
values
: Аргументы со значениями, по одному аргументу от каждого стора
Возвращает: Новое значение для хранения в производном сторе
Если функция возвращает undefined или текущее состояние производного стора, то обновления не будет
#
ВозвращаетНовый, производный стор