如何在颤动中使用带有容器小部件的 if 语句
Posted
技术标签:
【中文标题】如何在颤动中使用带有容器小部件的 if 语句【英文标题】:How can use if statement with Container widget in flutter 【发布时间】:2020-11-24 13:48:29 【问题描述】:我想在容器小部件中使用 if 语句,如下代码:
if (int.parse(m_id) > int.parse(cm_id) || int.parse(d_id) > 4)
Container(
width: 0.23 * size,
height: 0.23 * size,
child: Image.asset('assets/images/days/day4k.png'),
),
但它得到错误:
The element type 'Set<Container>' can't be assigned to the list type 'Widget'
有没有办法修复这个错误?
【问题讨论】:
去掉大括号 @Yann39 那么如果我在此之后有其他声明? 很遗憾,您不能有else
语句,使用另一个 if
或将代码移到返回小部件的函数中。
非常感谢我使用了两次 if 语句并且它有效
@Yann39 你可以有一个 else 语句,看看我的回答
【参考方案1】:
如果if statement
在颤振小部件中,则不应使用大括号
if (int.parse(m_id) > int.parse(cm_id) || int.parse(d_id) > 4)
Container(
width: 0.23 * size,
height: 0.23 * size,
child: Image.asset('assets/images/days/day4k.png'),
),
上面应该可以正常工作
如果你确实有一个if else statement
,你仍然不会使用大括号,只需删除第一个小部件末尾的,
if (int.parse(m_id) > int.parse(cm_id) || int.parse(d_id) > 4)
Container(
width: 0.23 * size,
height: 0.23 * size,
child: Image.asset('assets/images/days/day4k.png'),
) //no comma here
else
Container(), //comma here
另外,如果你有 else if
声明,你也可以用同样的方式处理它
if (int.parse(m_id) > int.parse(cm_id) || int.parse(d_id) > 4)
Container(
width: 0.23 * size,
height: 0.23 * size,
child: Image.asset('assets/images/days/day4k.png'),
) //no comma here
else if (condition here)
Container() //no comma here
else
Container(), //comma here
【讨论】:
所以如果我在 if 之后有 else 语句,我该如何输入 else? 我刚刚添加了如何在 if else 情况下进行操作 不客气。我还更新了我的答案,以在else if
声明中显示如何做,以防您将来需要它【参考方案2】:
它必须有效:
if (int.parse(m_id) > int.parse(cm_id) || int.parse(d_id) > 4)...[
Container(
width: 0.23 * size,
height: 0.23 * size,
child: Image.asset('assets/images/days/day4k.png'),
),
]
【讨论】:
所以如果我在 if 之后有 else 语句,我该如何输入 else?else
不是,但你可以这样写代码:if (!(int.parse(m_id) > int.parse(cm_id) || int.parse(d_id) > 4))...[ this is like else ]
以上是关于如何在颤动中使用带有容器小部件的 if 语句的主要内容,如果未能解决你的问题,请参考以下文章