【发布时间】:2020-06-22 12:07:53
【问题描述】:
我正在使用 useEffect() 挂钩通过“useState”调用更新某些状态:
useEffect(
() => {
const newProps = {}
departments.forEach(dept => {
const { code } = dept
const newCode = code.toLowerCase()
newProps[newCode + '_reviewer'] = ''
})
setFormValues({ ...formValues, ...newProps })
},
[departments]
)
毫无疑问,ESLint 给了我一个警告formValues:
React Hook useEffect has a missing dependency: 'formValues'.
但是,它继续提到:
Either include it or remove the dependency array.
You can also do a functional update 'setFormValues(f => ...)'
if you only need 'formValues' in the 'setFormValues' call
react-hooks/exhaustive-deps
我对神秘的“setFormValues(f => ...)”方法很感兴趣。这到底是什么意思?我应该如何重写setFormValues({ ...formValues, ...newProps }) 以避免ESLint 警告,不添加formValues 作为依赖或添加// eslint-disable-next-line react-hooks/exhaustive-deps?
我试过查看 repo,最接近的是this,它似乎没有提到这个特殊的解决方法。
【问题讨论】:
标签: dependencies eslint use-effect use-state