javascript - React 数据组件表不渲染 HTML

标签 javascript html reactjs

https://github.com/carlosrocha/react-data-components包不允许将 html 发送到 td细胞。请参阅:

enter image description here

enter image description here

我的目标是指向该产品的超链接。

我的用途是:

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 都遇到同样的问题:

enter image description here

我不反对 fork 它,但是有没有一种简单的方法来使用这个包并在这里声明 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>
    )}

关于javascript - React 数据组件表不渲染 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43685554/

相关文章:

javascript - 获取与当前单元格相邻的第四个单元格的类

javascript - 查找 Express-JS 中 "Unexpected token ;"错误的原因/行

html - 使模态 Div 可滚动而不是页面背景

javascript - 使用 "Tinder"+ "Firebase"构建 "Geofire"应用程序,这可能吗?

javascript - 提交后react-hook-form字段刷新

javascript - Firebase 时间戳返回错误日期 - Javascript

javascript - Firefox 插件栏

javascript - 允许子域之间的跨站点请求而不更改第二个子域的文件内容

python - 使用 python requests 库网站总是挂起

javascript - JQuery - 根据数组数据将 html 表格列添加到表格末尾