繁体   English   中英

为什么在点击 TextField 时重建?

[英]Why rebuilding when TextField tapped?

如果删除 MediaQuery.of(context).size 代码,它将不会重建。

这是我的代码。

class ExamplePage extends StatelessWidget {
    Future<Size> init(BuildContext context) async {
    print("init");
    return MediaQuery.of(context).size;
    }

    @override
    Widget build(BuildContext context) {
    return Scaffold(
        body: FutureBuilder(
            future: init(context),
            builder: (BuildContext context, AsyncSnapshot<Size> snapshot) {
                return Center(child: TextField());
            }));
    }
}
future: init(context),

这可能会导致每次为此小部件调用 build() 时调用 init(context)。 相反,类似这样的事情应该在这个小部件的 initState() 中完成,这样它只在小部件创建时完成一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM