diff --git a/packages/varuna/src/index.ts b/packages/varuna/src/index.ts index 1f95eb763..a7108c2fa 100644 --- a/packages/varuna/src/index.ts +++ b/packages/varuna/src/index.ts @@ -1,6 +1,6 @@ import { produce } from "immer"; import { merge } from "lodash-es"; -import { useEffect, useState } from "react"; +import { useEffect, useRef, useState } from "react"; export class Varuna { private listeners = new Set<(state: Type) => void>(); @@ -39,13 +39,16 @@ export class Varuna { } useInitialization(...args: Arguments[]) { - if (this.initialized) return; + const initializedThisMount = useRef(false); + + if (initializedThisMount.current) return; if (typeof this.creator !== "function") { throw new Error("Provider must be used with a function creator"); } this.initialize((this.creator as (...args: Arguments[]) => Type)(...args)); + initializedThisMount.current = true; } private dispatch() {