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>
Аргументы
event
EventdefaultState
(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>
Аргументы
effect
EffectdefaultState
(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
Аргументы
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. Перевод документации на другие языки осуществляется сообществом по мере наличия сил и желания.
Помните, что переведенные статьи могут быть неактуальными, поэтому для получения наиболее точной и актуальной информации рекомендуем использовать оригинальную англоязычную версию документации.