react-use/src/useObservable.ts
2018-12-16 11:02:52 +01:00

15 lines
356 B
TypeScript

import {useState, useEffect} from 'react';
const useObservable = <T>(observable$, initialValue?: T): T | undefined => {
const [value, update] = useState<T | undefined>(initialValue);
useEffect(() => {
const s = observable$.subscribe(update)
return () => s.unsubscribe();
}, [observable$]);
return value;
}
export default useObservable;