Создает подписку на юнит (стор, ивент или эффект).
createWatch<T>(config: {
unit: Unit<T>
fn: (payload: T) => void
scope?: Scope
}): Subscription
Аргументы
config
(Object): Конфигурацияunit
(Unit): Целевой юнит (стор, ивент или эффект), за которым нужно наблюдатьfn
(Function): Функция, которая будет вызываться при каждом обновлении юнита. Первым аргументом получает содержимое обновления.scope
(Scope): Опциональный скоуп. Если передан, то функция будет вызываться только при обновлении юнита именно на этом скоупе.
Возвращает
Subscription: Функция отмены подписки
Пример (со скоупом)
import { createWatch, createEvent, fork, allSettled } from "effector";
const changeName = createEvent();
const scope = fork();
const unwatch = createWatch({ unit: changeName, scope, fn: console.log });
await allSettled(changeName, { scope, params: "Иван" }); // output: Иван
changeName("Иван"); // no output
Пример (без скоупа)
import { createWatch, createEvent, fork, allSettled } from "effector";
const changeName = createEvent();
const scope = fork();
const unwatch = createWatch({ unit: changeName, fn: console.log });
await allSettled(changeName, { scope, params: "Иван" }); // output: Иван
changeName("Иван"); // output: Иван
Перевод поддерживается сообществом
Документация на английском языке - самая актуальная, поскольку её пишет и обновляет команда effector. Перевод документации на другие языки осуществляется сообществом по мере наличия сил и желания.
Помните, что переведенные статьи могут быть неактуальными, поэтому для получения наиболее точной и актуальной информации рекомендуем использовать оригинальную англоязычную версию документации.