我使用带有 gmail 帐户的 Nodemailer,我想更改发件人姓名。但我不知道该怎么做。发件人姓名实际上是我的电子邮件地址,但我更喜欢“咨询”。
这是我的代码:
var smtpTransport = mailer.createTransport("SMTP", {
service: "Gmail",
auth: {
user: "m***@gmail.com",
pass: "****"
}},
{from: 'Consultation'}
);
module.exports = {
sendNewUserEmail: function (user) {
var mail = {
from: "Consultation",
to: "i***@gmail.com",
subject: `Consultation: New client ${user.firstname} ${user.lastname}`,
html: `<h1>New client for kitomba</h1>
<ul>
<li>Firstname: ${user.firstname}</li>
<li>Lastname: ${user.lastname}</li>
<li>Phone: ${user.phone}</li>
<li>Mail: ${user.mail}</li>
<li>Address: ${user.address}</li>
<li>Suburb: ${user.suburb}</li>
<li>State: ${user.state}</li>
<li>Postal code: ${user.postalcode}</li>
</ul>`
}
smtpTransport.sendMail(mail, function (error, response) {
if (error) {
console.log("Error");
console.log(error);
} else …Run Code Online (Sandbox Code Playgroud) 当我单击子组件中的按钮时,我想强制我的父母重新渲染页面。(我不使用redux,因为我没有时间在我的项目中学习它,所以我使用localStorage。不幸的是React看不到什么时候对本地Storage进行了更改,所以他不会重新渲染.这就是为什么我想强制它重新渲染我的页面(以获得正确的内容)。)
我尝试使用带有函数 useState 的钩子来执行此操作,但它不起作用,我不知道为什么......(我的页面中没有任何变化)
这是我的父页面:(只是代码重要)
const[reload, setReload] = useState(false);
...
else if (user) { contents = [<Message_UserIdentified user={user} callBack={setReload}/>, contentform]; }
Run Code Online (Sandbox Code Playgroud)
这是我的子组件:
const Message_UserIdentified = (props) => {
let user = props.user;
return (
<Alert color="primary" className="alert alert-dismissible alert-info">
<h4>Welcome {!user ? "" : user.firstname} {!user ? "" : user.lastname}</h4>
If you are not {!user ? "" : user.firstname} click <a onClick={() => {localStorage.removeItem('idUser'); props.callBack(true);}}>here.</a>
</Alert>
);
}
Run Code Online (Sandbox Code Playgroud)
为什么我的父页面不想重新渲染?提前致谢。