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

React.js:如何通过模板字面量获取变量名对应的变量值?

解决React中根据props动态获取变量值的问题

嘿,我懂你想通过模板字面量实现动态取变量值的需求,但直接写{text_${props}}确实只会输出字符串而非变量的实际内容——因为模板字面量的核心作用是拼接字符串,没办法直接引用变量。不过有更安全优雅的方式达成你的目标,咱们慢慢说:

推荐方案:用对象映射键值对

最稳妥也最易维护的做法,是把你的文本内容放到一个对象里,用a和b作为键,这样就能直接通过props来访问对应的值了:

const Header = (props) => {
  // 把文本按key存入对象
  const textMap = {
    a: "Lorem ipsum dolor",
    b: "Lorem"
  };
  
  // 用props作为key取值,还能加默认值处理props无效的情况
  return (
    <h1>{textMap[props] || '默认显示文本'}</h1>
  );
}

不推荐的模板字面量+eval方式(仅作演示)

如果你非要贴近模板字面量的思路,理论上可以用eval()执行拼接后的字符串,但强烈不建议这么做!eval会执行任意传入的代码,一旦props被注入恶意内容,会引发严重安全风险,而且代码可读性、调试难度都会飙升。示例代码仅作参考,千万别在生产环境用:

const Header = (props) => {
  const text_a = "Lorem ipsum dolor";
  const text_b = "Lorem";
  
  // 危险!仅作演示,实际开发禁止使用
  return (
    <h1>{eval(`text_${props}`)}</h1>
  );
}

总结

对象映射的方式不仅能实现你要的动态取值效果,还比模板字面量+eval的方案更安全、更清晰,建议优先采用这种写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 18:33:11