fix: arrow function as useObservable param cause infinite rerender

This commit is contained in:
linonetwo 2024-01-03 20:45:50 +08:00
parent 66df849785
commit f8236fa6d3

View file

@ -1,11 +1,12 @@
import useObservable from 'beautiful-react-hooks/useObservable';
import { useState } from 'react';
import { useCallback, useState } from 'react';
import { IPage } from './interface';
export function usePagesListObservable(): IPage[] | undefined {
const [pages, pagesSetter] = useState<IPage[] | undefined>();
useObservable(window.observables.pages.pages$, (newPages: IPage[]) => {
const setter = useCallback((newPages: IPage[]) => {
pagesSetter(newPages.sort((a, b) => a.order - b.order));
});
}, []);
useObservable(window.observables.pages.pages$, setter);
return pages;
}