簡體   English   中英

React 數據組件表不呈現 HTML

[英]React data components table does not render HTML

https://github.com/carlosrocha/react-data-components包不允許將 html 發送到td單元。 看:

在此處輸入圖片說明

在此處輸入圖片說明

我的目標是超鏈接到那個產品。

我的用途是:

import React from 'react';
var DataTable = require('react-data-components').DataTable;
import PlainTable from './PlainTable'


class ReduxDataTable extends React.Component {
  constructor(props) {
    super(props);
  }

    processHeaders(){
      var columns = [];
      for (let i = 0; i < this.props.data.headers.length; i++){
          var header = this.props.data.headers[i];
          var item = {title: header, prop: header};
          columns.push(item);
      }
      return columns;
    }

    render() {
        var dataList = this.props.data.data;
        console.log("datalist is", dataList);
        console.log("datalist length is", dataList.length);
        var headerList = this.processHeaders();

        if(dataList.length > 2) {
          return (
              <DataTable
                keys="name"
                columns={headerList}
                initialData={dataList}
                initialPageLength={20}
                initialSortBy={{ prop: headerList[0].title, order: 'descending' }}
                pageLengthOptions={[ 20, 60, 120 ]}
              />
          );
        }
        else {
          return (
              <PlainTable
                headers={headerList}
                rows={dataList}
              />
          );
        }
    }
}

export { ReduxDataTable as default };

那么就

return (
  <div className="card">
    <h2 className="style-1">Detailed Report</h2>
    <br/>
      <h2 className="style-1:after">Data about products </h2>
      <ReduxDataTable data={data}/>
 </div>
)

如果產品很少,普通表是<table>

該包不顯示任何“htmlTrue”選項,因為搜索“html”沒有任何用處。 我對任何 html 都遇到了同樣的問題:

在此處輸入圖片說明

我不反對派生它,但是有沒有一種簡單的方法來使用這個包並在這里聲明 html?

我沒有使用該組件,但是查看代碼,似乎可以使用render函數來執行所需的操作。 見這里: https : //github.com/carlosrocha/react-data-components/blob/3d092bd375da0df9428ef02f18a64d056a2ea5d0/src/Table.js#L13

請參閱此處的示例https://github.com/carlosrocha/react-data-components/blob/master/example/table/main.js#L17

相關代碼片段:

const renderMapUrl =
  (val, row) =>
    <a href={`https://www.google.com/maps?q=${row['lat']},${row['long']}`}>
      Google Maps
    </a>;

const tableColumns = [
  { title: 'Name', prop: 'name' },
  { title: 'City', prop: 'city' },
  { title: 'Street address', prop: 'street' },
  { title: 'Phone', prop: 'phone', defaultContent: '<no phone>' },
  { title: 'Map', render: renderMapUrl, className: 'text-center' },
];

return (
  <DataTable
    className="container"
    keys="id"
    columns={tableColumns}
    initialData={data}
    initialPageLength={5}
    initialSortBy={{ prop: 'city', order: 'descending' }}
    pageLengthOptions={[ 5, 20, 50 ]}
  />
);

嘗試將render屬性添加到您的dataList 也許像這樣

var dataList = this.props.data.data;
for (let i=0; i<dataList.length; i++)
    dataList[i].render = function(val, row) {return (
        <a href={row.href}>row.title</a>
    )}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM