Skip to main content

useSubscription

Subscribes to an observable and delegates emissions to the given callback or observer. Does not cause re-renders.

Useful for side effects: logging, analytics, syncing external state, etc.

Signature​

function useSubscription<T>(
observable: Observable<T>,
observer: ((value: T) => void) | Partial<Observer<T>>,
): MutableRefObject<Subscription | null>;

Parameters​

ParameterTypeDescription
observableObservable<T>The observable to subscribe to.
observer((value: T) => void) | Partial<Observer<T>>A callback for next, or an object with next, error, complete handlers.

Returns​

MutableRefObject<Subscription | null> — a ref to the underlying RxJS Subscription for manual control if needed.

Example​

Short form — only next:

useSubscription(clicks$, (value) => {
console.log('clicked:', value);
});

Full observer:

useSubscription(data$, {
next: (value) => console.log(value),
error: (err) => console.error(err),
complete: () => console.log('done'),
});

Live demo​

Log (0 events):