首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsx中的模板文字

jsx中的模板文字
EN

Stack Overflow用户
提问于 2018-04-09 22:14:10
回答 2查看 25.7K关注 0票数 9

我想用这个但用道具

代码语言:javascript
复制
<section class="slider" data-slick='{"slidesToShow": 3,"autoplay": true,  "responsive": [{"breakpoint":600,"settings":{"slidesToShow": 2}}]}'>

这应该会给你

代码语言:javascript
复制
<section class="slider" data-slick='{"slidesToShow":${props.number},"autoplay": ${props.autoplay},  "responsive": [{"breakpoint":${props.breakpoint},"settings":{"slidesToShow": ${props.show}}}]}'>

但是因为这是内部引用,所以我尝试在babel中使用Template literals

像这样

代码语言:javascript
复制
"babel": {
    "presets": [
      "es2015",
      "stage-3"
    ],
    "plugins": [
      "transform-object-rest-spread",
      [
        "transform-react-jsx",
        {
          "pragma": "wp.element.createElement"
        }
      
    ],["transform-es2015-template-literals"]
    ]
  }

但它没有得到我的道具的价值,它只是像引用一样发送它。

我应该如何使用transform-es2015-template-literals来获取此引号中的道具值

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-09 22:28:23

你不需要添加插件来转换它们,错误的是你的语法。

您需要使用反标记:`而不是常规的标记(撇号):‘。并用大括号括起来。

代码语言:javascript
复制
<section 
    class="slider" 
    data-slick={`{"slidesToShow":${props.number},"autoplay": ${props.autoplay},  "responsive": [{"breakpoint":${props.breakpoint},"settings":{"slidesToShow": ${props.show}}}]}`}
>
票数 19
EN

Stack Overflow用户

发布于 2018-04-09 22:27:22

您需要将模板字符串放在花括号中,以便脱离jsx并返回到常规的javascript。此外,模板字符串使用反记号字符(在US qwerty键盘的左上角),而不是单引号:

代码语言:javascript
复制
<section class="slider" data-slick={`{"slidesToShow":${props.number},"autoplay": ${props.autoplay},  "responsive": [{"breakpoint":${props.breakpoint},"settings":{"slidesToShow": ${props.show}}}]}`}>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49735097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档