我无法在表中显示json文件的内容.我得到了标题,但单元格里什么都没有.

这是我的代码:

import Table from './Table'
import Menu from "./menus.json"


export default function Display() {
    const [menu, setMenu] = useState([Menu]);


    const data = useMemo(() => [
        {
            Header: 'Id',
            accessor: menu.id,
        },
        {
            Header: 'Title',
            accessor: menu.title,
        },
        {
            Header: 'Invited',
            accessor: menu.invited.name,
        },
        {
            Header: 'Price',
            accessor: menu.price,
        },
    ], [])
    return (

        <Table data={menu} columns={normalizeData(data.result)}>
    )

}

我的json摘录:

{
    "menus": [
        {
            "id": "Menu1",
            "title": "Creamy pea soup topped with melted cheese and sourdough croutons.",
            "price": 4,
            "invited": [
                {
                    "name": "Jose Luis",
                    "location": "LA"
                },
                {
                    "name": "Smith",
                    "location": "New York"
                },
            ],
            
        },
        ...
    ]
}

就在返回之前,我试过一个物体.密钥(数据). map ((键)=&gt;({id:key,}));但不管用.

谢谢你的帮助!

推荐答案

JSON数据是一个对象:

{
  "menus": [
    {
      "id": "Menu1",
      "title": "Creamy pea soup topped with melted cheese and sourdough croutons.",
      "price": 4,
      "invited": [
        {
          "name": "Jose Luis",
          "location": "LA"
        },
        {
          "name": "Smith",
          "location": "New York"
        },
      ],    
    },
    ...
  ]
}

...

import JsonData from "./menus.json";

...

const { menus } = JsonData;

accessor属性不正确.

Column Options

  • accessor: String | Function(originalRow, rowIndex) => any
    • Required
    • 此字符串/函数用于为列构建数据模型.
    • 访问器返回的数据应为primitive且可排序.
    • 如果传递了一个字符串,该列的值将通过该键在原始行上查找,例如,如果列的访问器为firstName,则其值将从row['firstName']读取.还可以使用访问器(如info.hobbies甚至address[0].street)指定深度嵌套的值
    • 如果传递了一个函数,将使用此访问器函数在原始行上查找列的值,例如,如果列的访问器为row => row.firstName,则其值将通过将行传递给此函数并使用结果值来确定.
    • 从技术上讲,如果列具有唯一id,则不需要此字段.这用于扩展列或行 Select 列.Warning:只有当你真的知道自己在做什么时,才省略accessor.

使用刺状存取器

const data = useMemo(
  () => [
    {
      Header: "Id",
      accessor: "id"
    },
    {
      Header: "Title",
      accessor: "title"
    },
    {
      Header: "Invited",
      accessor: "invited[0].name" // because invited is an array
    },
    {
      Header: "Price",
      accessor: "price"
    }
  ],
  []
);

或者使用函数

const data = useMemo(
  () => [
    {
      Header: "Id",
      accessor: row => row.id
    },
    {
      Header: "Title",
      accessor: row => row.title
    },
    {
      Header: "Invited",
      accessor: row => row.invited[0].name
    },
    {
      Header: "Price",
      accessor: row => row.price
    }
  ],
  []
);

Edit react-display-content-of-my-json-file-but-get-only-the-header

Javascript相关问答推荐

Vue-Router渲染组件但不更改网址

如何在非独立组件中使用独立组件?

React对话框模式在用户单击预期按钮之前出现

我应该在redux reducer中调用其他reducer函数吗?

react/redux中的formData在expressjs中返回未定义的req.params.id

为什么!逗号和空格不会作为输出返回,如果它在参数上?

JS—删除对象数组中对象的子对象

我怎么在JS里连续加2个骰子的和呢?

rxjs插入延迟数据

如何在ASP.NET项目中使用Google Chart API JavaScript将二次轴线值格式化为百分比

在使用位板时,如何在Java脚本中判断Connect 4板中中柱的对称性?

根据一个条件,如何从处理过的数组中移除一项并将其移动到另一个数组?

当我在Reaction中创建一个输入列表时,我的输入行为异常

使用NextJS+MongoDB+Prisma ORM获取无效请求正文,无法发布错误

将基元传递给THEN处理程序

使用Reaction窗体挂钩注册日历组件

Socket.IO在刷新页面时执行函数两次

为什么我的SoupRequest";被重置为初始值,以及如何修复它?

递增/递减按钮React.js/Redux

更新文本区域行号