颤振中的三元运算符

Sam*_*mer 6 dart flutter

我想基于布尔值显示和隐藏 HomeCategory 对象。我目前有这个:

  _isOn ? HomeCategory(0, Icons.check, Colors.blue[800], "Check In", [Task(0, "Check In", true),]) : "",
Run Code Online (Sandbox Code Playgroud)

但是它会引发错误,因为如果它关闭,我将传递一个空字符串。我如何向它传递一个空对象或隐藏它?这是一个像这样的列表:

   _isOn ? HomeCategory(0, Icons.check, Colors.blue[800], "Check In", [Task(0, "Check In", true),]) : "",
    HomeCategory(1, Icons.chat_bubble, Colors.red, "Forums", [ Task(1, "Questions", true),]),
    HomeCategory(2, Icons.star, Colors.blue[200], "Goals", [ Task(2, "Goals", true),]),
    HomeCategory(3, Icons.monetization_on, Colors.orange[700], "Budget", [ Task(3, "Budget", true),]),
    HomeCategory(4, Icons.shopping_basket, Colors.brown[300], "Shopping", [ Task(4, "Items", true),]),
    HomeCategory(5, Icons.calendar_today, Colors.purple[900], "My Day & Calendar", [ Task(4, "Events", false),]),
    HomeCategory(6, Icons.check_circle_outline, Colors.teal[700], "Check Out", [ Task(4, "Tasks", false),]),
    HomeCategory(7, Icons.dock, Colors.grey[700], "Connect", [ Task(4, "Tasks", false),]),
    HomeCategory(8, Icons.local_pharmacy, Colors.green, "My Medication", [ Task(4, "Tasks", false),]),
    HomeCategory(9, Icons.settings, Colors.yellow[800], "Settings", [ Task(4, "Tasks", false),]),
Run Code Online (Sandbox Code Playgroud)

Mic*_*ndz 9

你可以这样做 :

_isOn ? HomeCategory() : SizedBox()
Run Code Online (Sandbox Code Playgroud)

但由于它在 a 中List<Widget>,所以if条件更清晰:

if(_isOn)
    HomeCategory()
Run Code Online (Sandbox Code Playgroud)