react.useeffect依赖性缺少依赖关系

发布于 2025-01-27 05:34:15 字数 359 浏览 4 评论 0原文

我想在使用效果中使用检查值,但不想将其添加到依赖项中 数组,因为我不希望在检查更新中调用使用效率。

但是我收到警告“ react hook useffect缺少依赖性:“已检查”。要包含它或删除依赖性数组。

const[checked , setChecked] = React.useState(false);

useEffect(() = >{
     if(data.length && !checked){
        setChecked(true)
     }
     else{
      //something
     }
    },[data]);

I want to use the checked value in useEffect but don't want to add it in dependency
array as I don't want useEffect to be called on checked updation.

But I am getting the warning "React Hook useEffect has missing dependency :"checked".Either include it or remove the dependency array".

const[checked , setChecked] = React.useState(false);

useEffect(() = >{
     if(data.length && !checked){
        setChecked(true)
     }
     else{
      //something
     }
    },[data]);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风尘浪孓 2025-02-03 05:34:16

您可以做到这一点的一种方法是使用a useprevious 挂钩跟踪检查的最后值。如果预先检查检查的是不相等的,则您会尽早取消。

const[checked , setChecked] = React.useState(false);

const prevChecked = usePrevious(checked)

useEffect(() = >{
  if (prevChecked !== checked) return
  
  if(data.length && !checked){
    setChecked(true)
  }
  else{
  //something
  }
},[data, prevChecked, checked]);

One way you can do this is with a usePrevious hook to track the last value of checked. If prevChecked and checked are not equal, then you would cancel early.

const[checked , setChecked] = React.useState(false);

const prevChecked = usePrevious(checked)

useEffect(() = >{
  if (prevChecked !== checked) return
  
  if(data.length && !checked){
    setChecked(true)
  }
  else{
  //something
  }
},[data, prevChecked, checked]);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文