我创建了一个具有email
,subject
和message
输入字段的组件。我的目标是添加电子邮件并将其发送给多个收件人,并以逗号分隔。但这不起作用。
在控制台中,我可以看到它将多个收件人合并为一个字符串,例如
"abc@yahoo.com, ert@gmail.com, werty@yahoo.com"
但是我希望以这种方式格式化字符串
"abc@yahoo.com", "ert@gmail.com", "werty@yahoo.com"
例如:我想向3个收件人发送电子邮件:
abc@yahoo.com
,ert@gmail.com
,werty@yahoo.com
任何人都可以帮助我。预先感谢
答案 0 :(得分:1)
您要解决的问题是,您有一个email
,subject
和message
字段,用户输入数据以发送主题为subject
的电子邮件,邮件message
发送到email
字段中提供的所有电子邮件。
有多种方法可以解决此问题,具体取决于您格式化email
字段的用户输入的格式。 最简单的方式是接受用空格分隔的电子邮件。例如。如果用户需要将电子邮件发送到3封电子邮件abc@abc.com
,bcd@bcd.com
和cde@cde.com
中,则可以将它们全部接受为一个字符串,其中每个电子邮件均用空格分隔。
"abc@abc.com bcd@bcd.com cde@cde.com"
现在,您只需调用email
email.split(" ")
字符串中的所有电子邮件。
const email = "abc@abc.com bcd@bcd.com cde@cde.com";
const emails = email.split(" ");
console.log(emails);
// ["abc@abc.com","bcd@bcd.com","cde@cde.com"]
因此,您修改后的handleSubmit
方法将是这样
handleSubmit = e => {
e.preventDefault();
const { email, subject, message } = this.state;
const email_list = email.split(" ");
const data = {
email: email_list,
subject,
message
};
axios
.post(`/api/email`, data, {
headers: { "Content-Type": "application/json" }
})
.then(res => {
console.log(res);
console.log(res.data);
})
.catch(err => {
console.log(err);
});
};
您还需要像这样更改changeHandle
方法
changeHandle = e => this.setState({[e.target.name]: e.target.value });
这是接受多封电子邮件的最简单方法。您可以设计任何适合您的应用程序的方法。上述方法可能是我能想到的最直接的方法。如果您需要进一步的澄清,请随时发表评论