【发布时间】:2019-10-30 01:17:41
【问题描述】:
我正在浏览一些编码示例,并遇到了 React 中组件声明的一个示例:
export const TodoList = ({ todos }) => (
<ul>
{
todos && todos.length
? todos.map((todo, index) => {
return <Todo key={`todo-${todo.id}`} todo={todo} />
})
: "No todos, yay!"
}
</ul>
);
我想尝试将这个三元运算符转换为 if/else 语句,如下所示:
export const TodoList = ({ todos }) => (
<ul>
{
if (todos) && (todos.length) {
todos.map((todo, index) => {
return <Todo key={`todo-${todo.id}`} todo={todo} />
})
} else {
"No todos, yay!"
}
}
</ul>
);
但是,我在if 语句开始的那一行得到错误:
解析错误:意外的令牌
为什么三元运算符在这里有效,而 if 语句却无效?
【问题讨论】:
-
{…}包装一个表达式,如2 + 2或x ? y : z。 if 语句是语句,而不是表达式。 -
啊..我不知道这个。谢谢
-
无论如何它必须是
if (todos && todos.length)。括号是if语法的一部分。
标签: javascript reactjs ecmascript-6