2014-09-13 89 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