从语法上讲,如何使用do expressions编写switch语句?
e.g。这样:
<div>
{do{
switch(foo) {
case 'a':
<Bar/>
case 'b':
<Baz/>
}
}}
</div>
出现
'use strict';
React.createElement(
'div',
null,
function () {
switch (foo) {
case 'a':
React.createElement(Bar, null);
case 'b':
React.createElement(Baz, null);
}
}()
);
请注意输出中缺少return
- 即它没用。 Babel不会让我在源头添加回报。甚至可以在switch
表达内使用do
es吗?
答案 0 :(得分:2)
这可能不起作用,因为switch
不是表达式(但if
都不是,所以我不知道,它可能只是Babel中的一个错误)。解决方法是将值分配给某个变量并将其放在do
块的位置(还记得添加break
):
<div>
{do{
let r;
switch(foo) {
case 'a':
r = <Bar/>
break;
case 'b':
r = <Baz/>
break;
}
r;
}}
</div>