Hey @Sean-Bradley, a few observations:
RonBonBon opened this issue · 1 comments
RonBonBon commented
Hey @Sean-Bradley, a few observations:
- what's the problem with buttons being recreated on each render? Is there some scaling issue that I'm not aware of?
- there's no problem with bypassing the
exhaustive-deps
lint rule in general, as long as you know what you're doing. We actually do that a lot in Leva 🤧
However, here the solution to your problem is pretty obvious:
const buttons = useMemo(() => {
const _buttons = {}
positions.forEach((p, i) => {
_buttons['button ' + i] = button(() => setTo(p))
})
return _buttons
}, [positions, setTo])
And if you're a fan of the reduce function:
const buttons = useMemo(() => positions.reduce((acc, p, i) =>
Object.assign(acc, { [`button ${i}`]: button(() => setTo(p)) }), {}), [positions, setTo])
Originally posted by @dbismut in #393 (comment)
Sean-Bradley commented
It seems you have created a new issue from an issue that was already solved and closed.
#393 (comment)
Your problem is unclear because this is a verbatim copy of just one of the comments from the original thread.