繁体   English   中英

fetch 给了我一个完整的数组,但是当我尝试访问它时它是空的

[英]fetch gives me a full array but it is empty when i try to access it

我从 Symfony rest ZDB974238714CA8DE634A7CE1D083A14 得到 object。 这个 object 有一个属性“正在拍摄”,它是一个数组,当我 console.log 时这个数组是满的,但是当我尝试访问它时,它是空的

这是我的获取请求

const getProjectsAvailable = async () => {
    const data = await fetch(
      `${process.env.GATSBY_CORE_URI}/api/dashboard/supplier/projects/available`,
      {
        headers: {
          [`X-Auth-Token`]: `${token}`,
          [`Accept`]: `application/json`,
        },
      }
    );

    return data;
  };

这是我从获取请求中返回的项目 object

0: {id: 258, name: "Project26-1", reference: "A6568", isOfferValidated: null, source: "dashboard", …}

它有一个包含数组且不为空的射击键

shootings: Array(1)
   0:
   addressCity: "Paris"
   addressCountry: {id: 76}

但是当我将这个 object 设置为我的组件 state 时,所有值都保持不变,除了射击键变成一个空数组

const [projects, setProjects] = useState([]);

useEffect(() => {
  getProjectsAvailable().then(res =>
    res.json().then(data => {
      setProjects(data);
    })
  );
}, []);

我不知道为什么会这样。

提前致谢


编辑:

例如,console.log 的第一行给了我响应 object 一个完整的射击阵列,而第二行将它设置为我的 state 但射击阵列是空的

  useEffect(() => {
    getProjectsAvailable().then(response => console.log(response));
    getProjectsAvailable().then(response => setProjects(response));
  }, []);

好吧,这是我的错。 在代码的其他地方,拍摄属性上有一个 a.split(),它改变了数组,所以道具改变了,拍摄数组变空了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM