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.
In the following example the current implementation outputs very useless code for
useAutoMemoanduseAutoCallback, and potentially un-performant code for effects:The obvious reason is that
configwill always be different from the previous render. To “solve” it we need to wrap the object literal inuseAutoMemo:The macros should at least warn about this borderline situation.