首页 > 解决方案 > 如何从对象数组中提取数据以在 html 电子邮件模板中呈现列表?使用 React/Formik/Sendgrid

问题描述

所以,基本上我有一个无法正确解析的表单数据。我在 listPets 变量的响应中不断收到 [object Object]。每个其他变量都正确映射。有人对我该如何解决这个问题有任何想法吗?:)

<Formik
  initialValues={{
    email: '',
    password: '',
    jobType: '',
    comments: '',
    cookies: [],
    terms: '',
    newsletter: '',
    firstName: '',
    pets: [{ type: '', name: '', id: '1' }]
  }}
  validationSchema={ LoginSchema }
  onSubmit={ 
    async data => {
      await sleep(1000);
      setStatus(prevStatus => ({ ...prevStatus }));
      const res = await fetch('/api/send', { method: 'POST',
                      headers: {
                      'Content-Type': 'application/json'
                    },
                    body: JSON.stringify(data)
                  });

      const text = await res.text();
      handleResponse(res.status, text);
    }
  }
>

const sgMail = require('@sendgrid/mail');

export default async function(req, res){ 
  sgMail.setApiKey(process.env.SENDGRID_API_KEY);

  const { email, comments, firstName, cookies, jobType, pets } = req.body;


  const content = {
    to: '',
    from: email,
    subject: `New Message From - ${email}`,
    text: comments,
    html: `
    <p>Hi, ${firstName}.</p>
    <p>${comments}</p>
    <p>${cookies}</p>
    <p>${jobType}</p>
    <p>${listPets}</p> 
    `
  };

  try {
    console.log('Content', content);
    res.status(200).send('Message sent successfully.');
  } catch (error) {
    console.log('ERROR', error);
    res.status(400).send('Message not sent.');
  }
}

标签: javascriptarraysreactjsobjectsendgrid

解决方案


为什么不使用 JSON.stringify(pets) 来调试发生了什么?我会发表评论,但我没有足够的声誉。


推荐阅读