You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在React.js中基于HTML字符串生成绑定对象数据的邮件模板

实现JavaScript对象数据到HTML字符串的绑定

你当前的问题是emailData用单引号定义,导致里面的模板占位符${person.name}无法被解析,以下几种方法可以帮你完成数据绑定:

方法1:用ES6模板字面量(最简便)

把emailData的单引号换成反引号,模板占位符会自动解析对象属性:

const person = {
    name: 'Wes',
    job: 'Web Developer',
    city: 'Hamilton',
    bio: 'Wes is a really cool guy that loves to teach web development!'
}

const emailData = `<div class="person"><h2>${person.name}</h2><p class="location">${person.city}</p><p class="bio">${person.bio}</p></div>`;
// 输出就是你要的结果
console.log(emailData);

方法2:手动替换占位符(兼容旧环境)

如果项目不支持ES6,就用replace方法逐个替换:

const person = {
    name: 'Wes',
    job: 'Web Developer',
    city: 'Hamilton',
    bio: 'Wes is a really cool guy that loves to teach web development!'
}

let emailData = '<div class="person"><h2>${person.name}</h2><p class="location">${person.city}</p><p class="bio">${person.bio}</p></div>';
emailData = emailData
    .replace('${person.name}', person.name)
    .replace('${person.city}', person.city)
    .replace('${person.bio}', person.bio);

console.log(emailData);

方法3:解构赋值简化写法

如果需要多次使用对象属性,先解构再写模板更简洁:

const person = {
    name: 'Wes',
    job: 'Web Developer',
    city: 'Hamilton',
    bio: 'Wes is a really cool guy that loves to teach web development!'
}

const { name, city, bio } = person;
const emailData = `<div class="person"><h2>${name}</h2><p class="location">${city}</p><p class="bio">${bio}</p></div>`;
console.log(emailData);

内容的提问来源于stack exchange,提问作者Sagar Mehta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 15:32:16