hooks.macro icon indicating copy to clipboard operation
hooks.macro copied to clipboard

Error/warn on known non-invariants

Open yuchi opened this issue 5 years ago • 0 comments

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.

yuchi avatar Nov 29 '18 22:11 yuchi