Skip to main content


This is like store.useSyncState but it also observers the updates on path (push strategy) and forces the component to update.


  1. subtree (string): The subtree that you want to fetch the state from
  2. path (string?, default: ""): The path to state that you want to read and update
  3. depth (number?, default: 1): Same as depth in observe


(Array): An array with the following elements in order

  • State at path.
  • A function to modify the state.
  • A dispatch function for you to dispatch any action to the internal Redux store.


import { createDocStore } from "@syncstate/core";
import { useDoc } from "@syncstate/react";
const store = createDocStore({ counter: { count: 0 } }, []);
// Inside a React component
const [counter, setCounter, dispatch] = useDoc("/counter");
const increment = () =>
setCounter((counter) => {
const decrement = () =>
setDoc((counter) => {
Last updated on by RohitGeekyAnts