createEvent
import { createEvent } from "effector";
const event = createEvent();
Метод для создания событий.
Формула
createEvent<E = void>(eventName?: string): EventCallable<E>createEvent<E = void>(config: { name?: string sid?: string domain?: Domain}): EventCallable<E>
-
Аргументы
-
eventName
: Опциональный аргумент. Имя события для отладки. -
config
: Опциональный аргумент. Объект конфигурации.name
: Имя события.sid
: Стабильный идентификатор для SSR.domain
: Домен для события.
-
-
Возвращаемое значение
Возвращает новое вызываемое событие.
Примеры
Обновление состояния с помощью вызова события:
import { createStore, createEvent } from "effector";
const addNumber = createEvent();
const $counter = createStore(0);
$counter.on(addNumber, (state, number) => state + number);
$counter.watch((state) => { console.log("state", state);});// => 0
addNumber(10);// => 10
addNumber(10);// => 20
addNumber(10);// => 30
Мы создали событие addNumber
и стор $counter
, после чего подписались на обновления стора.
Обратите внимание на вызов функции addNumber(10)
. Всякий раз, когда вы будете вызывать addNumber(10)
, вы можете посмотреть в консоль и увидеть, как меняется состояние.
Обработка данных с помощью производных событий:
import { createEvent } from "effector";
const extractPartOfArray = createEvent();const array = extractPartOfArray.map((arr) => arr.slice(2));
array.watch((part) => { console.log(part);});extractPartOfArray([1, 2, 3, 4, 5, 6]);// => [3, 4, 5, 6]
Основные ошибки
Ниже приведён список возможных ошибок, с которыми вы можете столкнуться при работе с событиями:
call of derived event is not supported, use createEvent instead
unit call from pure function is not supported, use operators like sample instead
Связанные API и статьи
- API
- Статьи
Документация на английском языке - самая актуальная, поскольку её пишет и обновляет команда effector. Перевод документации на другие языки осуществляется сообществом по мере наличия сил и желания.
Помните, что переведенные статьи могут быть неактуальными, поэтому для получения наиболее точной и актуальной информации рекомендуем использовать оригинальную англоязычную версию документации.