我在下面的代码中单击menuicon(定义为#lines)时尝试切换菜单。
在执行中,一切都很好,我的意思是,一旦我在DARTIUM中运行代码,它就可以按照我的意愿运行,菜单会在点击时切换。
但是在Dart编辑器中,我在附加的图片中收到了错误信息,我的代码中是否有错误?
void main() {
....
var menuToggle =querySelector('#lines')
..onClick.listen((e)=>fonixMenu.hidden=true ? !fonixMenu.hidden : false);
....
}
答案 0 :(得分:1)
我认为它告诉您代码中的false
永远不会到达,因为true
会导致返回表达式的第一部分。
您可以将其简化为:
onClick.listen((e) => fonixMenu.hidden = !fonixMenu.hidden);
答案 1 :(得分:0)
我认为你真正想做的是
void main() {
....
var menuToggle =querySelector('#lines')
..onClick.listen((e) => fonixMenu.hidden = fonixMenu.hidden == true ? = false : fonixMenu.hidden = true);
// ^ 2nd =
....
}
但是,当您确保fonixMenu.hidden
永远不会null
时,Danny的解决方案会更加优雅,因为
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);