Попробуйте что-то вроде этого (documentGenerated - это свойство, которое переключает кнопку, которая генерирует компонент PDFDownloadLink.
Если вы продолжаете рендеринг PDF-документа несколько раз, это влияет на производительность приложения и тем самым снижает его. Убедитесь, чтоправильно переключить компонент PDFDonwloadLink .
{!documentGenerated ? (
<button
className="btn"
onClick={generatePDF}
>
Generate PDF
</button>
) : (
<PDFDownloadLink
document={<YourComponent {...state} />}
fileName={outputFilename}
className="btn btn-primary"
>
{({ blob, url, loading, error }) =>
loading
? 'Loading document...'
: 'Document is ready!'
}
</PDFDownloadLink>
)}