当前位置: 首页 > 知识库问答 >
问题:

模板文字中的JSX if语句

冯枫
2023-03-14

我用JSX呈现以下HTML

<div data-things="{"somethingOne": 1, "somethingTwo": 22, "somethingThree": 'some string'}">
</div>

在JSX中,我有

const data = `{
  "somethingOne": ${valueOne}, 
  "somethingTwo": ${valueTwo}, 
  "somethingThree": ${valueThree}
}`;

并返回

<div data-things={ data }><div>

这很好,但现在我尝试在模板文字中添加条件,以仅在值存在时显示属性值对。

我尝试了许多变体,包括:

const data = `{
  "somethingOne": ${valueOne}, 
  ${valueTwo} && "somethingTwo": ${valueTwo},
  "somethingThree": ${valueThree}
}`;

条件呈现:

22 && "initialSlide": 22,

它显示值,但返回条件语句语法,而不是对其进行处理。

我怎样才能使这个条件起作用?我必须为每一个添加条件。

共有2个答案

宗安翔
2023-03-14

我认为这应该行得通。请试一试

     const two = valueTwo ? `"somethingTwo": ${valueTwo},`:"";
     const data = `{
         "somethingOne": ${valueOne}, 
         ${two}
         "somethingThree": ${valueThree}
      }`;
朱渝
2023-03-14

您可以使用占位符(${})中的三元运算符执行此操作,如下所示:

const data = `{
  "somethingOne": ${valueOne}, 
  ${ valueTwo ? `"somethingTwo:" ${valueTwo},`: '' }
  "somethingThree": ${valueThree}
}`;

伪代码示例:

const data = `{
  ${ true ? '"key": "value",' : '' }
  "key1": "value1",
  ${ false ? '"key2": "value2",' : '' }
}`


console.log(data)
 类似资料:
  • 我有一个非常特殊的例子,我需要在一个模板文本中使用一个模板文本,但是我做不到。 代码如下所示: 然而,我必须将其包装在函数中,同时保持变量的值,这会导致错误发生。无论我是否逃脱了滴答声。 使用转义滴答,我收到以下错误消息: 错误:预期的某个链接但未提供 没有,我得到: 意外标记,预期“”,” 我该怎么处理这件事? 编辑:可能应该注意的是,中传递的代码将被渲染并且需要使用它。它最终将通过传递给另一个

  • "Come to me, all you that are weary and are carrying heavy burdens, and I will give you rest. Take my yoke upon you, and learn from me; for I am gentle and humble in heart, and you will find rest for

  • 问题内容: 我想在AngularJS模板中做一个条件。我从Youtube API获取视频列表。某些视频的比例为16:9,有些视频的比例为4:3。 我想要这样的条件: 我正在使用迭代视频。不知道该如何应对这种情况: 在范围内添加功能? 是否在模板中? 问题答案: Angularjs(低于1.1.5版)不提供此功能。以下是您要达到的目标的几种选择: ( 如果您使用的是1.1.5或更高版本,请跳至下面的

  • 我想在AngularJS模板中做一个条件。我从Youtube API获取一个视频列表。视频有的比例为16:9,有的比例为4:3。 我想提出这样一个条件: 我正在使用迭代视频。我不知道该怎么处理这种情况: 是否在作用域中添加函数? 是否在模板中执行?

  • 主要内容:1.多行字符串,2.字符串插值,3.标记模板,4.原始字符串,5.String.fromCodePoint()模板文字是ECMAScript 2015/ES6中引入的新功能。它提供了创建多行字符串和执行字符串插值的简便方法。模板文字是字符串文字,并允许嵌入表达式。 在ES6之前,模板文字被称为模板字符串。 与字符串中的引号不同,模板文字用反引号()字符(QWERTY键盘中ESC键下方的键)括起来。 模板文字可以包含占位符,由美元符号和大括号表示。在反引号内,如果要使用表达式,则可以将该

  • Mpx中的模板语法以小程序模板语法为基础,支持小程序的全部模板语法,同时提供了一系列增强的模板指令及语法。 小程序原生模板语法请参考这里 Mpx提供的增强指令语法如下: wx:style动态样式 wx:class动态类名 wx:model双向绑定 wx:model-prop双向绑定属性 wx:model-event双向绑定事件 wx:model-value-path双向绑定数据路径 wx:mode