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

React Hook useCallback缺少一个依赖项:id。要么包含它,要么删除依赖数组[重复]

王亮
2023-03-14

我得到这个错误(React Hook useCallback有一个丢失的依赖项:'Id'。要么包含它,要么删除依赖数组),不知道如何解决它,

import React, { useEffect, useState, useCallback } from "react";
import { Link } from "react-router-dom";

const Sports = (props) => {
  const Id = props.match.params.gamename;
  // console.log(Id);
  const [sport, setSport] = useState([]);
  const get = useCallback(async () => {
    const res = await fetch(
      URL +
        Id
    );
    const response = await res.json();
    setSport(response);
    // console.log(response);
  }, [sport]);
  useEffect(() => {
    get();
  }, [get]);

  return (
    <div>
      <ul>
        {sport.map((currentElement, index) => {
          return (
            <li key={index}>
              <Link to={"/" + Id + "/" + currentElement.competition.id}>
                <p>{currentElement.competition.name}</p>
              </Link>
            </li>
          );
        })}
      </ul>
    </div>
  );
};

export default Sports;

我这样做是为了。。。!

import React, { useEffect, useState } from "react";
import { Link } from "react-router-dom";

const Sports = (props) => {
  const Id = props.match.params.gamename;
  // console.log(Id);
  const [sport, setSport] = useState([]);

  useEffect(() => {
    const get = async () => {
      const res = await fetch(
        "http://51.143.173.5/api/developer/matchapi.php?Action=listCompetitions&EventTypeID=" +
          Id
      );
      const response = await res.json();
      setSport(response);
      // console.log(response);
    };
    get();
  }, []);
  return (
    <div>
      <ul>
        {sport.map((currentElement, index) => {
          return (
            <li key={index}>
              <Link to={"/" + Id + "/" + currentElement.competition.id}>
                <p>{currentElement.competition.name}</p>
              </Link>
            </li>
          );
        })}
      </ul>
    </div>
  );
};

export default Sports;

获取此错误-(React Hook use效应缺少依赖项:'Id'。要么包含它,要么删除依赖数组)

共有1个答案

翟宏放
2023-03-14

useffect和其他一些挂钩需要提供依赖项数组。这是作为数组传递的最后一个参数。依赖项告诉钩子要观察哪些变量或元素进行更改。如果一个依赖项发生了变化,钩子也应该期待一个新的行为,并因此而更新。

要解决此问题,您需要在依赖项数组中提供get()方法,警告状态如下:

const get = useCallback(async () => {
  const res = await fetch(
    URL +
      Id
  );
  const response = await res.json();
  setSport(response);
}, []);

useEffect(() => {
  get();
}, [get]);

这将告诉钩子,如果get()方法发生更改,钩子应该预期不同的行为。在您的情况下,它实际上没有任何足够的影响,但在其他情况下,它可以作为一个函数,在每次变量更改时运行。

 类似资料:
  • 我得到这个错误[React Hook useEffect缺少依赖项:'get data'。要么包括它,要么删除依赖项数组]请我解决这个问题...!

  • 我试图构建一个不和谐的应用程序,但由于某些原因,它无法访问JDA。错误如下: 编辑:这是我的POM:

  • 问题内容: 我正在使用Jersey上传文件。我定义了方法: 并调用Jersey客户的呼叫进行测试: 但是,我得到: 严重:缺少方法public java.util.Collection ImageResource.uploadImage(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition)的依赖关系将j

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

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

  • 问题内容: 我认为Maven依赖关系的顺序之前无关紧要,并认为这是它的一个优点。这是我以前的依赖项: 它运作良好,今天我要把对弹簧的依赖移到最底层,以便与那些球衣相关的东西可以在一起。但是后来我再也无法正常工作了,我的码头抱怨道: 那真的很令人困惑,所以我是否需要考虑依赖顺序?我怎么知道正确的顺序? 问题答案: 依赖关系的顺序确实很重要,因为从2.0.9版开始,Maven如何解决传递依赖关系。文档