如何在jsPDF的body中传递一个多值数组?

How to pass an array with multiple values in the body of jsPDF?

我正在尝试使用 jsPDF 显示用户已订购的产品列表。

我可以创建专栏并生成 PDF(下载) 但是我在使用 body.

时遇到了问题

我无法以 PDF 格式发送我的信息 body。

然而,之前为了显示我的数组的不同值,我做了例如“carts.map”,但它似乎不是我请求的正确方法。

看来我对数组的理解有点吃力...

这是我的代码:

// Get the product name, quantity, price ...

  const [paniers, setPaniers] = useState([])
  const getPaniersDetailsCommande = () => [
        getDetails(JSON.parse(localStorage.getItem('User')).id)
        .then(response => {
            setPaniers(response.data)
            console.log(response.data)
        }).catch(err => console.log(err))
    ]

// Generation of the PDF 
    const PDFGeneration = () => {
        var doc = new jsPDF('p','px','a4','false');

        doc.text(10,15,'Résumé de votre commande : ');
        doc.autoTable({
            theme: 'grid',
            startY: 20,
            head: [['Nom', 'Quantité', 'Prix (€)']],
            body:[// Data of my product],
        });
        doc.save('CommandeInfo.pdf');
    }

如果我忘了提供更多信息,请在评论中告诉我

感谢帮助 >_< !

我遇到了类似的问题。在你的情况下,我建议在 const PDFGeneration 之前使用这个:

const [data] = useState(yourdata.map(item=> [item.id, item.nom, item.quantité, item.prix])); //and map all the data you require.

之后,当您在正文中调用 doc.autoTable 时,只需调用创建的 const,如下所示:

doc.autoTable({
        theme: 'grid',
        startY: 20,
        head: [['Nom', 'Quantité', 'Prix (€)']],
        body:data,
    });