2014-09-13 36 views
2

我試圖在下面我的代碼中單擊menuicon(定義爲#lines)時切換我的菜單。DART編輯器,「死代碼」語句

在執行時,一切都很好,我的意思是說,一旦我在DARTIUM中運行代碼,它就會按我的意願工作,菜單在點擊時切換。

但在Dart編輯器中,我得到了附加圖片中的錯誤消息,我在代碼中做錯了什麼嗎?

void main() { 
    .... 
    var menuToggle =querySelector('#lines') 
     ..onClick.listen((e)=>fonixMenu.hidden=true ? !fonixMenu.hidden : false); 
    .... 
} 

enter image description here

回答

1

我認爲這是告訴你,在你的代碼的false永遠不會達到,因爲true導致返回表達式的第一部分。

你可以把它簡化爲:

onClick.listen((e) => fonixMenu.hidden = !fonixMenu.hidden); 
0

我想你真正想要做的是

void main() { 
    .... 
    var menuToggle =querySelector('#lines') 
     ..onClick.listen((e) => fonixMenu.hidden = fonixMenu.hidden == true ? = false : fonixMenu.hidden = true); 
              //^2nd = 
    .... 
} 

但是當你確保fonixMenu.hidden是從來沒有丹尼的解決方案更優雅null因爲

var x = null; 
var Y = !x 

導致異常:

type 'Null' is not a subtype of type 'bool' of 'boolean expression'. 

一個簡單的空安全的變體

var menuToggle =querySelector('#lines') 
     ..onClick.listen((e) => fonixMenu.hidden = fonixMenu.hidden == true ? false : true); 
+0

我認爲你缺少分配呢? '(e)=> fonixMenu.hidden = fonixMenu.hidden == true? !fonixMenu.hidden:false); ' – 2014-09-13 20:19:20

+1

你說得對,看起來不正確。 – 2014-09-13 20:20:45