首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应适当的useEffect依赖关系

反应适当的useEffect依赖关系
EN

Stack Overflow用户
提问于 2022-10-07 11:54:59
回答 2查看 58关注 0票数 0

所以我有这个应用程序,它有针对不同api端点的大约6个提取函数,我在我的终端上收到了一个警告错误--相同的函数名,表明我应该将它包含在我的useEffect的依赖数组中。我的函数在useEffects之上。这个过程是在第一次加载时,我想让它们全部获取,然后只有当它们选择另一个源或类型时才会再次获取--它完成了我想要的工作,但为什么我会看到这些警告呢?

代码语言:javascript
复制
useEffect(() => {

    fetchTtype()
    fetchSource()
    fetchSet()
}, [chosenType, chosenSource])

useEffect(() => {
    setIsLoading(true)
    fetchUsers()
    fetchUserProblems()
    fetchAuthority()
},[])

第111:8行: React useEffect缺少依赖项:“取取数据”、“取取源”和“取取类型”。要么包含它们,要么删除依赖项数组。

deps钩子/详尽-deps第118:7行: React缺少依赖项:“fetchProblems”、“取取权限”、“fetchUsers”和“setIsLoading”。要么包含它们,要么删除依赖数组react/react。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-07 12:15:39

如果在useEffect中使用在useEffect之外声明的一些函数/变量,则必须将其作为依赖项添加,以防其更改。

useEffect内部使用的外部变量应该被嵌入到依赖数组中,并且您的函数是在它之外定义的,这就是它警告您的原因。

虽然有一些例外的情况,当你不必添加所有的东西。例如,如果在setState中调用useEffect方法,则不需要在依赖数组中嵌入它(因为function将确保该函数不会改变)。

了解更多关于在这里添加到依赖项的内容:https://devtrium.com/posts/dependency-arrays

票数 1
EN

Stack Overflow用户

发布于 2022-10-07 12:47:14

如果您的函数或方法只被调用一次,那么最好在同一个useEffect钩子中声明和调用该函数。

例如:-

代码语言:javascript
复制
 useEffect(() => {
    const options = {
      weekday: "long",
      year: "numeric",
      month: "long",
      day: "numeric",
    };
    const getCurrentDate = () => {
      let date = new Date();
      setDate(date.toLocaleDateString("en-us", options));
    };

    getCurrentDate();
  }, []);

如上面的代码所示,尝试将函数或方法包含在useEffect钩子中,或者如果您想要添加一些依赖项,它可以是变量,当更改时,useEffect将再次触发。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73986796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档