将 JSON 文件数据插入 React Bootstrap Table 2

Inserting JSON File Data into React Bootstrap Table 2

我正在尝试导入本地 JSON 文件以使用 React Bootstrap Table 以表格方式显示数据。我一直在寻找其他资源,但找不到执行此操作的最佳方法。我能否在导入文件以在 table.

上显示时获得一些指导?
import React from "react";
import ReactDOM from "react-dom";
import "react-bootstrap-table-next/dist/react-bootstrap-table2.min.css";
import BootstrapTable from "react-bootstrap-table-next";

var data = require('./data.json');

const items = [
  data
];

const Columnlist = props => {
  const columns = [
    {
      dataField: "MEMNAME",
      text: 'Dataset Name'
    },
    {
      dataField: "NAME",
      text: 'Variable Name'
    },
    {
      dataField: "LABEL",
      text: 'Variable Label'
    }
  ];
  return(
    <div style = {{padding: '20px'}}>
      <h1 className='h2'>Variables</h1>
      <BootstrapTable keyField='id' data = {items} columns = {columns} />
    </div>
  );
};

const rootElement = document.getElementById("root");
ReactDOM.render(<Columnlist />, rootElement);

这是一个适用于您的示例:https://codesandbox.io/s/festive-rgb-75z4o/。有疑问就Lmk吧。

在我的代码中,我根据 json 文件自定义了列数据,假设 data.json 如下

[
    { "id": "1", "name": "Product A", "price": 10 },
    { "id": "2", "name": "Product B", "price": 20 },
    { "id": "3", "name": "Product C", "price": 30 }
]

我们可以根据 json 元素键自定义列标题,如下所示

const columnsData = [];

Object.entries(data[0]).map(([key], index) => {

    let header = {};
        header = {
            "dataField": key,
            "text": key.toUpperCase(),
            "sort": true,
            "onSort": (field, order) => {
                console.log(`${field} : ${order}`);
            },
            "style": (cell, row, rowIndex, colIndex) => {
                if (rowIndex % 2 === 0) {
                    return {
                        backgroundColor: '#F0F0F0',
                        fontSize: '11px'
                    };
                }
                return {
                    backgroundColor: 'white',
                    fontSize: '11px'
                };
            },
            "headerStyle": (colum, colIndex) => {
                return {
                    fontSize: '11px',
                    fontWeight: 'bold',
                    width: '30%',
                    whiteSpace: 'nowrap'
                };
            },
            "bodyStyle": {
                overflow: 'overlay'
            }
        }
        columnData.push(header);
    });

我们可以将 columnData 传递给 Bootstrap table,

<BootstrapTable 
    keyField='id' 
    data = {items} 
    columns = {columnData} 
/>

希望对您有所帮助。