【问题标题】:Show boolean value in dynamically generated datatable columns在动态生成的数据表列中显示布尔值
【发布时间】:2021-07-11 19:33:23
【问题描述】:

我正在使用PrimeReact Datatables 并从 JSON 动态创建列。如何在表格中呈现布尔值?现在他们没有出现。

JSON 人物示例

const person = [
   {
      "id":1,
      "person":"John Smith",
      "canEdit":false,
      "canView":true
   },
   {
      "id":2,
      "person":"Frank Jones",
      "canEdit":true,
      "canView":true
   }
]

组件

...
const dynamicColumns = columns.map((col,i) => {
    return <Column key={col.field} field={col.field} header={col.header} />;
});

return (
    <DataTable value={person}>
        {dynamicColumns}
    </DataTable>
)
...

【问题讨论】:

    标签: reactjs primereact


    【解决方案1】:

    使用DataTable templating

      const booleanChecker = (rowData, item) => {
        if (typeof rowData[item.field] === "boolean") {
          return rowData[item.field] ? "Accepted" : "Unaccepted";
        } else {
          return rowData[item.field];
        }
      };
    
      const dynamicColumns = columns.map((col, i) => {
        return (
          <Column
            key={col.field}
            field={col.field}
            header={col.header}
            body={booleanChecker}
          />
        );
      });
    
      return (
        <div>
          <div className="card">
            <DataTable value={products}>{dynamicColumns}</DataTable>
          </div>
        </div>
      );
    

    【讨论】:

    • 如果列是像我的示例代码那样动态生成的,那它是如何工作的?我是否在 dynamicColumns()... if (col.field === 'canEdit' || col.field === 'canView'){}else {}
    • 谢谢!做到了,实际上通过访问“项目”帮助我清理了我的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2021-04-27
    • 2015-07-25
    • 1970-01-01
    相关资源
    最近更新 更多