2017-06-05 11 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秒の欠如として出てくる - つまり、それは無用です。しかし、Babelは私にソースへのリターンを加えさせません。 doの中にswitchが含まれている可能性もありますか?

+1

これはバベルのバグのように見えます。 –

+1

あなたは何を返すと思いますか?どこから戻ったの?何に?解決したい実際の問題は何ですか? –

+0

'switch'は値を返さないので、' do'が返すものはありません。三項演算子と同じように 'switch'を使っているようですが、それはうまく動作しません。 – sbking

答えて

2

switchは式ではありません(ただし、どちらもifなので、わかりません。Babelのバグかもしれません)。これを回避するには、いくつかの変数に値を代入し、でそれを配置することで、doブロック(あまりにbreak秒を追加することを忘れないでください)を:

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

も ​​'break'行を忘れないでください! – Alnitak

関連する問題