如何在 React 的字符串变量中进行字符串插值?

归并排序

我有一个来自静态 JSON 文件的变量:

`const label = json.myString` 

json.myString 在哪里"Hello, ${ name }"由于这是一个变量,我不知道它会是什么。

我想在我的反应组件中做一些字符串插值:

<div>{ label }</div>

我怎样才能做到这一点?如果xyz未定义,则备份/默认选项的奖励积分

凌波

您应该为此使用模板引擎,例如Mustache


但是,您可以使用eval,但您不想使用它,因为在您的情况下它是不安全的(例如,如果有人会对您的服务器执行 MITM 攻击,则可以执行某些注入)。

var a = "kappa"
console.log(eval("`Hello, ${a}!`"))


您可以使用的另一个选项是正则表达式在这种情况下,您应该注意两个时刻:

  1. 变量必须存在于某些上下文中,例如this,允许将字符串化的变量名称作为键传递
  2. 您不应该在模板内使用模板边界的特殊符号,或者您应该额外处理正则表达式中的每个特殊符号。

var template = "My awesome template says: \"${ say }\""
var data = { say: "Hello!" }

console.log(template.replace(/\$\{([^}]+)\}/g, (match, group) => {
  return data[group.trim()]
}))


顺便说一句,我想这个问题不是特定于 React 的,而是特定于 JS 的。React 不为此类逻辑任务提供任何盈利功能:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章