Flutter 为颤振中的变量指定设置状态
我有一个页面显示了一堆小部件。所有这些都是相互分离的,我需要更新UI。为此,我使用了Flutter 为颤振中的变量指定设置状态,flutter,Flutter,我有一个页面显示了一堆小部件。所有这些都是相互分离的,我需要更新UI。为此,我使用了StatefulBuilder,它工作得很好,但问题是我需要在它们之间传递setState,因为我需要修改不同的小部件(例如标题操作) 因此,我认为将所有这些StatefulBuilders从它们身上移开(我每个都有一个)并创建一个全局构建器会有所帮助。它确实需要,但仍然需要将setState传递给子部件 有没有办法将setState分配给这样的全局var var _setState = null; class
StatefulBuilder
,它工作得很好,但问题是我需要在它们之间传递setState
,因为我需要修改不同的小部件(例如标题操作)
因此,我认为将所有这些StatefulBuilders
从它们身上移开(我每个都有一个)并创建一个全局构建器会有所帮助。它确实需要,但仍然需要将setState
传递给子部件
有没有办法将setState
分配给这样的全局var
var _setState = null;
class NewSetPage extends StatelessWidget {
@override
return StatefulBuilder(
builder: (BuildContext context, setState) {
setState(() {
_setState = setState;
});
return Scaffold(
...
在我的小部件中,我尝试了这一点,但不起作用:
_setState(() {
_setState = setState;
});
它不会抛出任何错误。如果您正在创建一个
无状态
小部件,并且第一个子部件是有状态生成器
,那么它与创建一个有状态小部件
是一样的
为了简单起见,您还可以将小部件转换为有状态的,并删除有状态的生成器
如果我需要更新我的无状态小部件的一小部分,而更改事件来自该特定部分的内部,我将仅在情况下使用有状态生成器
有没有办法将setState分配给这样一个全局变量
我建议永远不要将状态/状态设置器/上下文存储为全局变量,因为它会扰乱正常的颤振流。如果您正在创建一个
无状态
小部件,第一个子部件是有状态构建器
,这与创建一个有状态
小部件相同。您还可以将小部件转换为有状态,并删除有状态生成器。为了简单起见,我很少需要更新一个页面,所以我所有的小部件都是无状态的,上面有一些StatefulBuilder。我发现这更容易阅读/理解。但你可能是对的,也许在这个场景中,有一个完整的statefull
小部件是值得的,而不是headyep,总是向下传递值。如果你填充,你可以创建一个对象作为这些值的集合传递…当然,我会尽快完成,谢谢你是一个好的运动。我们这里需要像你这样的人。祝您今天过得愉快。