A companion method for serialize. Hydrates provided values into corresponding stores within a provided domain or scope. The main purpose is an application state hydration on the client side after SSR.

hydrate(domainOrScope: Domain | Scope, { values: Map<Store<any>, any> | {[sid: string]: any} }): void


  1. domainOrScope: domain or scope which will be filled with given values
  2. values: a mapping from store sids to store values or a Map where keys are store objects and values contains initial store value

You need to make sure, that the store is created beforehand, otherwise, the hydration might fail. This could be the case, if you store initalization / hydration scripts separate from stores' creation.


Populate store with a predefined value

import {createStore, createDomain, fork, serialize, hydrate} from 'effector'
const domain = createDomain()
const store = domain.createStore(0)
hydrate(domain, {
values: {
[store.sid]: 42,
console.log(store.getState()) // 42

Try it

Last updated on