los*_*193 120 html javascript ecmascript-6 reactjs
有没有办法合并React的花括号符号和href
标签?假设我们在州内有以下价值:
{this.state.id}
Run Code Online (Sandbox Code Playgroud)
以及标记上的以下HTML属性:
href="#demo1"
id="demo1"
Run Code Online (Sandbox Code Playgroud)
有没有办法可以将id
状态添加到HTML属性中以获得如下内容:
href={"#demo + {this.state.id}"}
Run Code Online (Sandbox Code Playgroud)
哪个会产生:
#demo1
Run Code Online (Sandbox Code Playgroud)
Li3*_*357 246
你几乎是正确的,只是放错了一些引号.用常规引号包装整个内容将字面上给你字符串#demo + {this.state.id}
- 你需要指出哪些是变量,哪些是字符串文字.由于内部的任何内容{}
都是内联JSX 表达式,因此您可以:
href={"#demo" + this.state.id}
Run Code Online (Sandbox Code Playgroud)
这将使用字符串文字#demo
并将其连接到值this.state.id
.然后,这可以应用于所有字符串.考虑一下:
var text = "world";
Run Code Online (Sandbox Code Playgroud)
还有这个:
{"Hello " + text + " Andrew"}
Run Code Online (Sandbox Code Playgroud)
这将产生:
Hello world Andrew
Run Code Online (Sandbox Code Playgroud)
您还可以将ES6字符串插值/ 模板文字与`(反引号)和${expr}
(插值表达式)一起使用,这更接近您似乎要尝试的操作:
href={`#demo${this.state.id}`}
Run Code Online (Sandbox Code Playgroud)
这基本上会替换它的值this.state.id
,将它连接起来#demo
.它等同于:"#demo" + this.state.id
.
小智 29
连接道具/变量的最佳方法:
var sample = "test";
var result = `this is just a ${sample}`;
//this is just a test
Run Code Online (Sandbox Code Playgroud)
Hyz*_*zyr 24
如果你想在 JSX 中做到这一点
<button className={`tab__btn first ${props.state}`} >
{props.text}
</button>
Run Code Online (Sandbox Code Playgroud)
小智 9
你可以简单地这样做..
<img src={"http://img.example.com/test/" + this.props.url +"/1.jpg"}/>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
172733 次 |
最近记录: |