gpt4 book ai didi

javascript - React 数据组件表不呈现 HTML

转载 作者:行者123 更新时间:2023-11-30 11:38:00 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com