Перейти к основному содержимому

createStore

Метод для создания независимого стора

Формула#

createStore<T>(defaultState: T): Store<T>
createStore<T>(defaultState: T, config: {
name?: string
updateFilter?: (update: T, current: T) => boolean
}): Store<T>

Аргументы#

  1. defaultState: Исходное состояние

  2. config: Опциональный объект конфигурации

    • name: Имя стора. Babel-plugin может определить его из имени переменной стора, если имя не передано явно в конфигурации

    • updateFilter: (update: T, current: T) => boolean

      Функция, которая предотвращает обновление стора. Для случаев, когда не достаточно стандартного пропуска обновлений, несущих undefined и текущее значения стора

      Аргументы

      • update: Значение, которое предлагается записать в стор
      • current: Текущее значение стора

      Возвращает: boolean

      Если возвращается false, то обновления не будет

Возвращает#

Новый стор

note

Опция updateFilter добавлена в effector 21.8.0

Пример#

import {createEvent, createStore} from 'effector'
const addTodo = createEvent()
const clearTodos = createEvent()
const $todos = createStore([])
.on(addTodo, (state, todo) => [...state, todo])
.reset(clearTodos)
const $selectedTodos = $todos.map(todos => {
return todos.filter(todo => !!todo.selected)
})
$todos.watch(state => {
console.log('todos', state)
})

Запустить пример

Последнее обновление