当前位置: 首页 > 知识库问答 >
问题:

反应使用效果获取错误-缺少依赖[重复]

蓟捷
2023-03-14

我尝试使用useEffect,但它得到的错误如下所示,

React Hook useffect缺少依赖项:“data”。包括它或删除依赖项数组

这是我的组件,

let id = props.location.pathname.split("--")[1];
let str = props.location.pathname.split("--")[0].substr(1);
const data = {id: id, link: str}

const [title, setTitle] = useState("")

useEffect(() => {
    setTitle("...") // Yükleniyor.
    async function getTitle() {             
        axios.post('/api/data/entry/get', data)
        .then(res => {
        setTitle(res.data.title)
        // TODO: Catch ekle.
        })
    }
    getTitle()
}, [props])

共有2个答案

宦树
2023-03-14

您必须在依赖数组中包含“数据”。这是因为您的钩子在回调中使用它。

这样,每次更改依赖项数组中的一个变量时都会调用钩子。

我注意到“数据”对象在组件的属性中使用值。你可能会说“好吧,那我为什么要同时包括道具和数据?”当定义依赖数组时,您需要尽可能地粒度化。让它依赖于道具太笼统了。在你的情况下,你应该让它只依赖于“数据”

编辑

我忽略了这样一个事实,即如果要将数据添加为依赖项,那么每次重新渲染都会触发钩子。这是因为基本上,data在每次渲染中都是一个新对象。您可以将数据的成员分离为变量,并将其用作依赖项:

您的组件现在看起来如下所示:

const id = props.location.pathname.split("--")[1];
const str = props.location.pathname.split("--")[0].substr(1);

const data = useRef({id: id, link: str});

const [title, setTitle] = useState("")

useEffect(() => { /* ... */ }, [id, str]);

请注意,我没有测试代码。请看看这是否有效。

梁丘洲
2023-03-14

您必须向依赖项列表中添加数据,如下所示

let id = props.location.pathname.split("--")[1];
let str = props.location.pathname.split("--")[0].substr(1);
const data = {id: id, link: str}

const [title, setTitle] = useState("")

useEffect(() => {
    setTitle("...") // Yükleniyor.
    const getTitle = async () => {
      const res = await 
        axios.post('/api/data/entry/get', data)
        setTitle(res.data.title)
        // TODO: Catch ekle.
        };
    getTitle()
}, [props])
 类似资料:
  • 问题内容: 我正在使用Jersey上传文件。我定义了方法: 并调用Jersey客户的呼叫进行测试: 但是,我得到: 严重:缺少方法public java.util.Collection ImageResource.uploadImage(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition)的依赖关系将j

  • 问题内容: 我正在尝试使用Maven构建Javahibernate项目。但是,当我尝试执行此操作时,似乎没有依赖项吗? 我的项目中现在有了这个pom.xml: 当我尝试使用mvn进行构建时,出现此错误: 我搜索了此错误,发现很多人必须在其pom.xml文件中更改其hibernate核心依赖版本,但似乎我没有hibernate核心,那么如何解决此问题? 问题答案: 它具有建议的JTA 1.1依赖性。

  • 我在构建我的应用程序时遇到此问题。有人知道怎么回事吗? React Hook useEffect缺少依赖项:“conectar”。包括它或删除依赖项数组react hooks/dep

  • 在我的反应/redux应用程序中,我使用调度来调用每次安装组件时从redux中的状态检索数据的操作。问题正在使用状态发生我的方式不工作 下面是我得到的错误: React Hook useEffect缺少依赖项:“dispatch”。包括它或删除依赖项数组。像“getInvoiceData”这样的外部作用域值不是有效的依赖项,因为对它们进行变异不会重新呈现组件react HOOK/DEP 这是我的密

  • 问题内容: 谁能帮我 .. ?我试图用JAX-RS创建一个Web服务,但是它给了我这个例外: org.glassfish.jersey.server.wadl.internal.WadlResource.wadlContext 这是我的java类的代码: -– Web.xml部分: -—使用的罐子是: javax.annotation-api-1.2.jar javax.ws.rs-api-2.0

  • 除了手动反编译类,检查它的所有依赖项,以及这些依赖项是否在类路径上,等等,对每个依赖类无限....有没有任何方法可以准确地确定类路径中缺少了哪个类,从而导致Java无法加载我的主类? 另一个问题是缺少父/接口类的问题。但是我已经手动检查了所有祖先类或者在指定的类路径上,或者在JDK中,如下所示。