import { restore } from "effector";

Методы

restore(event, defaultState)

Создает StoreWritable из Event. Работает как сокращение для createStore(defaultState).on(event, (_, payload) => payload).

Это не производный стор

restore создает новый стор. Это не производный стор. Это означает, что вы можете изменять его состояние через события и использовать его как target в sample.

Формула

restore(event: Event<T>, defaultState: T): StoreWritable<T>

Аргументы

  1. event Event
  2. defaultState (Payload)

Возвращает

StoreWritable: Новый стор.

Примеры

Базовый пример

import { createEvent, restore } from "effector";

const event = createEvent();
const $store = restore(event, "default");

$store.watch((state) => console.log("state: ", state));
// state: default

event("foo");
// state: foo

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

restore(effect, defaultState)

Создает StoreWritable из успешных результатов Effect. Работает как сокращение для createStore(defaultState).on(effect.done, (_, {result}) => result).

Формула

restore(effect: Effect<Params, Done, Fail>, defaultState: Done): StoreWritable<Done>

Аргументы

  1. effect Effect
  2. defaultState (Done)

Возвращает

StoreWritable: Новый стор.

Типы

Store будет иметь тот же тип, что и Done из Effect<Params, Done, Fail>. Также defaultState должен иметь тип Done.

Примеры

Эффект

import { createEffect, restore } from "effector";

const fx = createEffect(() => "foo");
const $store = restore(fx, "default");

$store.watch((state) => console.log("state: ", state));
// => state: default

await fx();
// => state: foo

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

restore(shape)

Создает объект с сторами из объекта с значениями.

Формула

TBD

Аргументы

  1. shape (State)

Возвращает

StoreWritable: Новый стор.

Примеры

Объект

import { restore } from "effector";

const { foo: $foo, bar: $bar } = restore({
  foo: "foo",
  bar: 0,
});

$foo.watch((foo) => {
  console.log("foo", foo);
});
// => foo 'foo'
$bar.watch((bar) => {
  console.log("bar", bar);
});
// => bar 0

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

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

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

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

Соавторы