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

TypeError:在React中尝试动态生成表时,无法将未定义或null转换为对象

齐修贤
2023-03-14

我正在尝试根据表所获得的数据动态呈现表。这一部分是有效的,但是当我实现了数据的过滤版本时,我在let headings=object.key(data[1])行上得到了TypeError Undefined或Null to object错误。

import React from "react";
import tableData from "./tableData1.js";

const TableComponent = ({ data }) => {
**let headings = Object.keys(data[1]);** //This is where I get the Error
  return (
    <table className="table table-dark table-striped">
      <thead>
        <tr>
          <th colspan="16">Dimensions in mm</th>
        </tr>
        <tr scope="col">
          <th>Series</th>
          {headings.map((heading) => (
            <th>{heading}</th>
          ))}
        </tr>
      </thead>
      <tbody>
        {data.map((item) => (
          <tr scope="col">
            <th scope="row">Series No.</th>
            {headings.map((heading) => (
              <td>{item[heading]}</td>
            ))}
          </tr>
        ))}
      </tbody>
    </table>
  );
};

const TableGenerator = () => {
  const filteredData = tableData.filter(item => item.id == 1).map(item => item.value);
  return <TableComponent data={filteredData} />;
};

export default TableGenerator;

以下是供参考的数据(目前只是一些模拟数据):

const tableData1 = [
  {
    id: 1,
    value: {
      A: "Value",
      B: "Value",
      C: "Value",
      D: "Male",
      E: "Value",
      G: "Value",
      H: "Value",
      I: "Value",
      L: "Value",
      M: "Value",
      N: "Value",
      P: "Value",
      Q: "Value",
      R: "Value",
      S: "Value",
    }
  },
  {
    id: 2,
    value: {
      A: "Value",
      B: "Value",
      C: "Value",
      D: "Male",
      E: "Value",
      G: "Value",
      H: "Value",
      I: "Value",
      L: "Value",
      M: "Value",
      N: "Value",
      P: "Value",
      Q: "Value",
      R: "Value",
      S: "Value",
    }
  },
  {
    id: 3,
    value: {
      A: "Value",
      B: "Value",
      C: "Value",
      D: "Male",
      E: "Value",
      G: "Value",
      H: "Value",
      I: "Value",
      L: "Value",
      M: "Value",
      N: "Value",
      P: "Value",
      Q: "Value",
      R: "Value",
      S: "Value",
    }
  },
];

export default tableData1;

它在我添加const filteredData部分之前工作,我将tableData直接传递到TableComponent,我不知道为什么。有人能帮我吗?

共有1个答案

南宫鸿晖
2023-03-14

您得到这个错误是因为data[1];返回未定义,因此不能被Object.keys()使用。

这可能意味着您的Filteredata被过滤错误,或者您在错误的索引处访问它。

 类似资料:
  • 我正在我的反应应用程序中创建一个上一个和下一个按钮。我试图获取页面的当前索引(我有一个存储在对象中的页面列表) 这是密码 我得到的错误是“类型错误:无法将未定义或空转换为对象” 需要明确的是,imageName和images不是空的或未定义的(因为当I console.log它时,它有我需要的数据)。 提前谢谢!

  • 获取错误。我尝试做多个选择,并更改第二个选择的数据与第一个选择的上更改材料表行。我正在使用Firebase。 当“store.Urunler”为null或未定义时,我会出现此错误。而且我的产品没有列在菜单项上,这意味着选择是空的,但state.products有数据 我怎样才能克服这个错误。我还想添加到Urunler,选择一个输入。我知道我应该为onChanges调用函数,但如果它起作用,我以后会

  • 我编写了两个函数,可以有效地复制JSON.stringify(),将一系列值转换为stringify版本。当我将代码移植到JSBin并在一些示例值上运行它时,它运行得很好。但是我在一个专门为测试这个而设计的规范运行程序中遇到了这个错误。 我的代码: 我从测试人员那里得到的错误消息是: 它似乎失败了:例如stringifyJSON(null)

  • 我正在运行一个React应用程序。 当我通过路由(单击按钮或链接)进入页面时,页面工作正常,但当我重新加载页面时,页面崩溃。我看不到错误在哪里,控制台和源代码显示为空,这是服务器消息控制台消息。 这是运行的代码。我尝试删除currentuser、addhabity和许多其他东西,只是为了了解错误的来源。没有结果。如果我通过链接进入页面,一切正常。 HabiddView.web.jsx 生活orm.

  • 我试图检查是否为。但我得到了一个错误: 无法将null转换为对象 我该如何进行? 我正在检查组和用户是否存在,否则将添加它们。

  • 代码如下: this.document.Sections是包含属性(以及对象)的对象。 如何消除这个错误?