首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flutter:多次调用StatelessWidget.build

Flutter:多次调用StatelessWidget.build
EN

Stack Overflow用户
提问于 2018-11-09 17:55:19
回答 1查看 10.7K关注 0票数 8

但是:

我注意到我的主屏幕(StatelessWidget)的构建方法(它是MaterialApp (home属性)的后代)在调试模式下像往常一样调用get,但在发布模式下调用三次。

在什么情况下会发生这样的事情?我已经尝试过多次复制,但都失败了。

编辑:

问题是,我将从媒体查询中获得的屏幕大小存储为全局变量,这样我就可以从任何地方访问它。现在,我需要访问树下面的有状态小部件的init方法中的变量。在调试模式下似乎没有问题,但在发布模式下,使媒体查询(必须在build内)的小部件的build方法被奇怪地调用一次,媒体查询的结果是一个Size(0.0,0.0),然后调用树下面的小部件的init方法,然后再调用两次带有媒体查询的build方法(这次使用正确的屏幕尺寸)。结果是我在init方法中没有正确的屏幕大小。

EN

回答 1

Stack Overflow用户

发布于 2019-04-11 15:24:25

https://docs.flutter.io/flutter/widgets/FutureBuilder-class.html

未来必须在更早的时候获得,例如在State.initState、State.didUpdateConfig或State.didChangeDependencies期间。在构造FutureBuilder时,不能在State.build或StatelessWidget.build方法调用期间创建它。如果未来与FutureBuilder同时创建,则每次重新构建FutureBuilder的父级时,都会重新启动异步任务。

(摘自https://github.com/flutter/flutter/issues/27847#issuecomment-462868299)

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53223469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档