2017-06-05 45 views
2

在句法上,我如何使用do expressions編寫switch語句?如何使用do-syntax編寫switch語句?

例如這樣的:

<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); 
    } 
    }() 
); 

REPL

注意在輸出缺乏return秒 - 也就是說,它是無用的。巴貝爾不會讓我增加回報來源。是否可以在do內部使用switch

+1

這看起來像在巴別塔的錯誤。 –

+1

你期望得到什麼回報?從哪裏返回?什麼?你想解決的實際問題是什麼? –

+0

'switch'沒有返回值,所以'do'沒有任何返回值。它看起來像你試圖使用'switch'類似於三元操作符,但它不會那樣工作。 – sbking

回答

2

這不起作用可能是因爲switch不是一個表達式(但既不是if,所以我不知道,它可能只是巴別塔中的一個錯誤)。對此的解決方法是將值分配給某個變量,並將其放置在與do塊的(記得要加break七大洲):

<div> 
{do{ 
    let r; 
    switch(foo) { 
     case 'a': 
      r = <Bar/> 
      break; 
     case 'b': 
      r = <Baz/> 
      break; 
    } 
    r; 
}} 
</div> 
+0

也不要忘記'break'行! – Alnitak