我正在从 db 中搜索数据,结果以表格形式显示。然后用户可以下载任何记录的 pdf。我正在使用@react-pdf/renderer 库来生成 pdf,但这个库的问题是它生成所有结果的 pdf 一次。因此系统由于大量结果而挂起。我需要一个只为用户特定记录生成 pdf 的库,而不是一次全部生成。
下面是例子
import React, {useState} from 'react';
import { PDFDownloadLink, Document, Page,Text } from '@react-pdf/renderer'
const _data = [
{
name: 'Bi'
},
{
name: 'Ars'
},
{
name: 'Saee'
}
]
const MyDoc = ({data}) => (
<Document>
<Page>
<Text>{data.name}</Text>
</Page>
</Document>
)
const App = () => {
const [data, setData] = useState(_data);
const clickHandler = (key) => {
return (
<PDFDownloadLink document={<MyDoc data={data[key]} />} fileName="somename.pdf">
{({ blob, url, loading, error }) => (loading ? 'Loading document...' : url)}
</PDFDownloadLink>
)
}
return (
<div>
<table>
<thead>
<tr>
<th>Sr</th>
<th>Name</th>
</tr>
</thead>
<tbody>
{data.map((item, i) => {
return (
<tr key={i} onClick={() => clickHandler(i)}>
<td>{i}</td>
<td>{item.name}</td>
</tr>
);
})}
</tbody>
</table>
</div>
)
}
export default App;