【发布时间】:2016-12-17 13:00:32
【问题描述】:
下面是我在 JSX 中渲染方法的一部分 - 为什么}) 后面的分号会抛出错误?在普通的 JavaScript 中完全没问题
<ul>
{
libraries.map(function (item) {
return <li>{item.name.toLowerCase()}</li>;
});
}
</ul>
【问题讨论】:
下面是我在 JSX 中渲染方法的一部分 - 为什么}) 后面的分号会抛出错误?在普通的 JavaScript 中完全没问题
<ul>
{
libraries.map(function (item) {
return <li>{item.name.toLowerCase()}</li>;
});
}
</ul>
【问题讨论】:
这是因为 JSX {} 表达式仅限于单个表达式。
<div>{2 + 2; 3 + 3}</div>
..会抛出错误。
但是你可以通过两个{} 表达式来解决这个问题
<div>{2 + 2}{3 + 3}</div>
如果只有一个表达式,就不需要分号。
如果您想对此有所了解,可以在表达式中使用鲜为人知的逗号运算符来做一些本地工作,然后返回用逗号分隔的最后一个表达式:
let x
...
<div>{x = 20, x}</div>
将显示<div>20</div>
【讨论】:
if 或 while 语句或 function 声明之后放置分号,但您在执行表达式后会这样做 - 编辑:实际上我不知道..您在 a 中返回表达式的值return 语句.. 但不是 if 语句。 javascript 很奇怪。
if 或while 之后放置分号。现在,如果您了解其中的区别,就应该清楚为什么不能将分号放在需要表达式的位置。