如何解决React Hook使用效果
有没有一种方法可以添加依赖项,并防止它们在更改时重新加载状态?
错误:行48:6:React Hook useEffect缺少依赖项:'profile.bio','profile.company','profile.githubusername','profile.location','profile.skills','profile。社交”,“ profile.status”和“ profile.website”。包括它们或删除依赖项数组。如果'setFormData'需要'profile.company'的当前值,您还可以切换到useReducer而不是useState,并在化简版react-hooks / exhaustive-deps中读取'profile.company'
代码:
useEffect(() => {
getCurrentProfile();
setFormData({
company: loading || !profile.company ? "" : profile.company,website: loading || !profile.website ? "" : profile.website,location: loading || !profile.location ? "" : profile.location,status: loading || !profile.status ? "" : profile.status,skills: loading || !profile.skills ? "" : profile.skills.join(","),githubusername:
loading || !profile.githubusername ? "" : profile.githubusername,bio: loading || !profile.bio ? "" : profile.bio,twitter: loading || !profile.social ? "" : profile.social.twitter,facebook: loading || !profile.social ? "" : profile.social.facebook,linkedin: loading || !profile.social ? "" : profile.social.linkedin,youtube: loading || !profile.social ? "" : profile.social.youtube,instagram: loading || !profile.social ? "" : profile.social.instagram,});
},[loading,getCurrentProfile]);
由于某种原因,如果我不添加,它不会停止警告我“缺少依赖项”:“ [ 载入中 getCurrentProfile, profile.bio, profile.company, profile.githubusername, profile.location, 个人档案技能 个人资料,社交, profile.status, profile.website, ]
但是您可能已经猜到,当您添加一个链接到已更改的依赖项时,useEffect的表现不佳。不允许编辑字段。
TL; DR 当我添加要求的依赖项时,它会不断更新字段的状态,而不是让用户对其进行编辑。
解决方法
Ciao,您可以通过以下方式使用d
钩子:
useRef
通过这种方式,即使其中一个依赖项更改了他的值,useEffect代码(在if语句内部)也将只执行一次。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。