diff --git a/packages/reffuse/src/Reffuse.ts b/packages/reffuse/src/Reffuse.ts index 32ef466..2561a4d 100644 --- a/packages/reffuse/src/Reffuse.ts +++ b/packages/reffuse/src/Reffuse.ts @@ -110,10 +110,16 @@ export class Reffuse { useSuspense( effect: Effect.Effect, - options?: { readonly signal?: AbortSignal }, + deps?: React.DependencyList, + options?: { readonly signal?: AbortSignal } & RenderOptions, ): A { const runPromise = this.useRunPromise() - return React.use(runPromise(effect, options)) + + const promise = React.useMemo(() => runPromise(effect, options), [ + ...options?.doNotReExecuteOnRuntimeOrContextChange ? [] : [runPromise], + ...(deps ?? []), + ]) + return React.use(promise) } useFork(