gpt4 book ai didi

flutter - Flutter-如何在加载UI之前动态添加容器的高度值?

转载 作者:行者123 更新时间:2023-12-03 04:47:54 26 4
gpt4 key购买 nike

在通过StreamBuilder从API响应中获取数据后,我在setState小部件内添加了build方法。但是它给出了这个错误:

Unhandled Exception: setState() or markNeedsBuild() called during build.



如何避免这种情况?

我的代码:
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: StreamBuilder(
stream: bloc.getData,
builder: (context, AsyncSnapshot<Home> dataSnapshot) {
if (dataSnapshot.hasData) {
if (dataSnapshot.data.description != null) _expandHeightBy(40);
........

功能
      _expandHeightBy(double increase) async {
setState(() {
_expandedHeightVal += increase;
});
}

最佳答案

出于充分的原因,不可能在构建期间调用setState。 setState运行build方法。因此,如果您能够在build中调用setState,则它将无限循环构建方法,因为它实际上是在调用自身。

查看这篇文章。它有一个基于StreamBuilder有条件渲染的示例。 https://medium.com/@sidky/using-streambuilder-in-flutter-dcc2d89c2eae

关于flutter - Flutter-如何在加载UI之前动态添加容器的高度值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61963228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com