uidotdev / usehooks

A collection of modern, server-safe React hooks – from the ui.dev team
https://usehooks.com
MIT License
9.52k stars 500 forks source link

default value for usePrevious hook #275

Open ImanMahmoudinasab opened 9 months ago

ImanMahmoudinasab commented 9 months ago

The current behavior of the usePrevious hook is to always return null as the previous value. But in some cases, it makes sense to have a different default value. For example for a table's data we don't want to pass null as the value instead we want to pass an empty array:


function MyTable({data, loading}){

const previousData = usePrevious(data);

 // This throws an exception when the component gets rendered with loading true:
const table = useReactTable({data: loading ? previousData: data});

return (
     // ...
);
}

Instead, I would like to be able to set an initial value for the hook:



function MyTable({data, loading}){

const previousData = usePrevious(data, []);

 // No error this time since previousData is [] at first render when loading is true:
const table = useReactTable({data: loading ? previousData: data});

return (
     // ...
);
}