出于某种原因,我的对象在作为道具传递时会重新排列

偏爱奥尼多

我将数据作为“数组数组”获取,因此我必须将其更改为“对象数组”,以便可以在我的产品页面上使用它。

在主产品页面中,我正确地对其进行了转换,并且使用 console.log,我可以正确地看到“对象数组”。在我将这个“对象数组”传递到我的产品页面以便我可以使用“对象数组”中的数据之后,各个对象被重新排列并弄乱了。我一直试图了解出了什么问题,但我无法调试它。请帮忙。

我的产品页面:

import React, { useState } from "react";
import Product from "./Product";

function Products() {
  //State management for the data pulled using fetch
  // data comes in as an array of arrays
  // so I have to transform into an array of objects
  const [data, setData] = useState([]);

  // using the first array in the 'array of arrays' as keys
  const keys = data.shift();

  // transforming from 'array of arrays' to 'array of objects'
  const dataObj = data.map(elem => ({ 
    [keys[0]]: elem[0], 
    [keys[1]]: elem[1], 
    [keys[2]]: elem[2], 
    [keys[3]]: elem[3], 
  }));

  console.log(dataObj)

  // pulling data from excel sheet
  const getData = () => {
    fetch(
      "https://sheets.googleapis.com/v4/spreadsheets/1DpaMUmqYxGUKnT9BL0uBuCZ6WJ8vd1CLAklqUvkcA8M/values/Sheet1?alt=json&key=AIzaSyD6o4v215zWtw-kOqGVeuLG50pE2QeRZTg",
      {
        method: "GET",
      }
    )
      .then((response) => response.json())
      .then((data) => {
        // console.log(data.value);
        setData(data.values);
        
      });
  };

  
  return (
    <div>
      Hello, you're in the products page
      <button onClick={getData}>click me</button>
      {dataObj.map((prod) => (
        <Product prod={prod} key={prod.id}/>
        
      ))}
      
    </div>
  );
}

export default Products;

我的产品页面

import React from "react";


function Product(props) {
  
  console.log(props.prod);

  
    return (

      <div>
        
      </div>
    
    );
}

export default Product;

我的控制台日志的图片

请忽略空数组。第一个数组是我的“对象数组”,它排列得当,但其他部分是单个对象,它们被弄乱了。

编辑:data.value

亚当

shift是突变。从来没有在反应中改变过事物。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel - 出于某种原因,max 打破了我的查询

Laravel - 出于某种原因,max 打破了我的查询

出于某种原因,我的mysql无法插入

出于某种原因,我的模型数据在我看来是不显示的

出于某种原因,我的媒体查询改变了我原来的移动优先设计

出于某种原因,这个对象在放入下面的线程时不被确认为存在

出于某种原因不允许我在 Ember js 中导入模块

出于某种原因,我的 pygame 窗口没有打开

javascript 出于某种原因不想在我的机器上执行

出于某种原因,当我三次点击 TextInput 时,未选择点击的行

出于某种原因,我的 python 代码跳过了代码的某个部分(pygame)

出于某种原因,我的 Android 房间 DAO 插入在 Temi Robot 上不起作用

出于某种原因,我不断收到“app.get 不是函数”

出于某种原因,我无法在列表中保存多个内容(当它在 for 循环中时)

如果出于某种原因,Python else 总是在执行

代表出于某种原因为空

出于某种原因,gbp buildpackage 包括主目录

我尝试在 python 中使用 tkinter 进行测验,但出于某种原因,我不断收到错误消息

由于某种原因,我无法访问对象数组的值

出于某种原因,当我从右侧或左侧碰撞瓷砖时,我会被传送到瓷砖的顶部。我怎样才能解决这个问题?

出于某种原因,我的背景图像没有与烧瓶一起显示。我已经尝试了其他答案,但没有任何效果

Java 新手:出于某种原因,我发现 for 循环中的值为 null,但如果我将 i 更改为 0,则它不为 null

出于某种原因,我不断收到一条错误消息,指出当 while 语句仍然存在时,它无法将“年龄”转换为整数

出于某种原因,我不断收到此错误:“operator>>”不匹配(操作数类型为“std::istream”{aka 'std::basic_istream<char>'}

我的代码有什么问题?出于某种原因,vetFinal 中的最后一个值似乎是内存垃圾

Android Studio:字体系列出于某种原因是红色的?

创建JS Spritesheet,出于某种原因显示第一帧

express js路由无法正常工作,出于某种原因获取404

pygame出于某种原因将所有类实例的位置设置为相同的值?