Метод привязки события или эффекта к scope для последующего вызова.

Иногда необходимо привязать события к scope явно, например, при вызове событий в рамках колбэков setTimeout/setInterval

Формула

scopeBind<T>(event: Event<T>): (payload: T) => void

Аргументы

  1. event: Событие для привязки к scope

Пример

Мы собираемся вызвать changeLocation внутри колбэка history.listen, поэтому у эффектора нет возможности связать событие с соответствующей областью видимости, и мы должны явно привязать событие к области видимости с помощью scopeBind

const installHistory = app.createEvent<any>()
const changeLocation = app.createEvent<string>()

installHistory.watch(history => {

  const locationUpdate = scopeBind(changeLocation)
  history.listen(location => {
    locationUpdate(location.pathname)
  })
})

Полный пример

Перевод поддерживается сообществом

Документация на английском языке - самая актуальная, поскольку её пишет и обновляет команда effector. Перевод документации на другие языки осуществляется сообществом по мере наличия сил и желания.

Помните, что переведенные статьи могут быть неактуальными, поэтому для получения наиболее точной и актуальной информации рекомендуем использовать оригинальную англоязычную версию документации.

Соавторы