在 Flutter 中的 Widget 构建外部声明变量
Posted
技术标签:
【中文标题】在 Flutter 中的 Widget 构建外部声明变量【英文标题】:Declare variable outside Widget build in Flutter 【发布时间】:2021-11-24 07:25:52 【问题描述】:我正在尝试在其他类中使用变量,但它不起作用。为什么我不能在 Widget 构建之外声明 orderChanged?
代码:
class HomeButton extends StatefulWidget
static bool orderChanged;
@override
_HomeButtonState createState() => _HomeButtonState();
class _HomeButtonState extends State<HomeButton>
@override
Widget build(BuildContext context)
bool _orderChanged = false;
bool orderChanged = _orderChanged;
return
.
.
.
onPressed: () async
setState(()
_orderChanged = true;
);
.
.
.
谢谢你:)
【问题讨论】:
订单变化值没有变化。它总是错误的。这是你的问题吗? 不,它在 setState 中变为 true!问题是将 _orderChanged 导出为 Widget 构建之外的 orderChanged。我想在另一个类中使用 orderChanged! 一言以蔽之,不能这样导出 在类使用状态管理之外使用一些变量值 【参考方案1】:您应该在构建方法之外声明变量,因为它会一次又一次地构建。您可以声明_HomeButtonState
类或HomeButton
。
如果您想在HomeButton
(有状态类)中声明变量(即 orderChanged),您可以使用
widget.orderChanged;
【讨论】:
以上是关于在 Flutter 中的 Widget 构建外部声明变量的主要内容,如果未能解决你的问题,请参考以下文章
如何专门为 Flutter 中的 Class 方法构建 Provider 包的 Consumer Widget?
Flutter 中 stateless 和 stateful widget 的区别[Flutter专题60]