hooks.macro
hooks.macro copied to clipboard
Error/warn on known non-invariants
In the following example the current implementation outputs very useless code for useAutoMemo
and useAutoCallback
, and potentially un-performant code for effects:
function MyComponent({ prop }) {
const config = { a: prop };
return useAutoMemo(JSON.stringify(config));
}
The obvious reason is that config
will always be different from the previous render. To “solve” it we need to wrap the object literal in useAutoMemo
:
function MyComponent({ prop }) {
const config = useAutoMemo({ a: prop });
return useAutoMemo(JSON.stringify(config));
}
The macros should at least warn about this borderline situation.