当孩子等待父母的设置状态完成时,如何在两个有状态小部件之间使用 FutureBuilder?

用户1961

我有一个使用 TabBar 的小部件。父小部件进行 http 调用,该调用需要在 TabBar 小部件被绘制之前完成(它们使用数据)。我如何强制 TabBarView 小部件等待父 http 调用完成并让我设置状态变量,然后在 TabBarView 小部件中使用该变量。似乎解决方案是对所有 TabBar 小部件使用 FutureBuilder,但是这些小部件如何知道等待父级完成?这些小部件等待父级的数据。

父小部件 - 进行 http 调用,设置状态变量 x TabBarView 小部件,等待 x。抛出错误是因为在设置 x 之前调用了 TB1,除非我输入一些虚拟数据。

父小部件

  void initState() {
    x = await _getdata();
    setState(() => this.x = x);

  }

...

        TabBarView(
            controller: _tabController,
            children: [
              new TB1(x),
              new TB2(x),
              new TB3(x),
            ]
        )
马丁斯

您可以有条件地构建您的小部件

DataType x = null;

void initState() {
    _getdata().then((_x) {
        if (mounted){ // Just to be sure is safe to call setState, since _getdata is asynchronous
            setState(() => x = _x);
        }
    });    
}

Widget build(BuildContext context){
    // Loading
    if (x == null){
       return CircularProgressIndicator();
    }else{
        return TabBarView(...);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更新内置在FutureBuilder中的小部件状态

来自分类Dev

使用FutureBuilder创建轮播

来自分类Dev

如何使用RefreshIndicator更新FutureBuilder状态?

来自分类Dev

Flutter + SharedPreferences:如何使用FutureBuilder

来自分类Dev

使用Futurebuilder有条件地渲染小部件

来自分类Dev

如何在futurebuilder中设置用户ID

来自分类Dev

服务器关闭时如何在FutureBuilder中显示小部件?

来自分类Dev

如何同时使用FutureBuilder和setState方法?

来自分类Dev

在main.dart中使用FutureBuilder

来自分类Dev

Flutter FutureBuilder具有数据和连接状态

来自分类Dev

Flutter:如何在使用FutureBuilder时仅从api获取数据?

来自分类Dev

如何在已经获得的未来中实现FutureBuilder

来自分类Dev

如何在FutureBuilder中修复递归HTTP请求?

来自分类Dev

如何在SmartRefresher上实现FutureBuilder-Flutter Dart

来自分类Dev

如何在FutureBuilder中将参数传递给Future属性函数

来自分类Dev

如何在 FutureBuilder 中从请求中呈现数据

来自分类Dev

使用来自sqflite的数据填充FutureBuilder时出错

来自分类Dev

我在Flutter中使用FutureBuilder时遇到问题

来自分类Dev

使用 FutureBuilder 时,Mobx Observer 无法按预期工作

来自分类Dev

如何使用FutureBuilder手动触发AsyncSnapshot错误

来自分类Dev

使用FutureBuilder onPressed prefixIcon后如何更新TextFormField内容?

来自分类Dev

坏状态Flutter使用FutureBuilder和Provider中没有任何元素

来自分类Dev

Flutter-用户登录Firebase时FutureBuilder无法重建吗?

来自分类Dev

FutureBuilder,SetState:删除setState时变量未更新

来自分类Dev

Flutter FutureBuilder小部件在与Futures链接时不响应Future分辨率

来自分类Dev

Dismissible和FutureBuilder不能一起使用

来自分类Dev

将FutureBuilder与本地JSON一起使用时出错

来自分类Dev

使用 FutureBuilder 时如何根据另一个下拉选择更改下拉项目?

来自分类Dev

如何解决此错误:构建FutureBuilder <DataSnapshot>(脏,状态:_FutureBuilderState <DataSnapshot>#89711)时引发了以下断言:

Related 相关文章

  1. 1

    如何更新内置在FutureBuilder中的小部件状态

  2. 2

    使用FutureBuilder创建轮播

  3. 3

    如何使用RefreshIndicator更新FutureBuilder状态?

  4. 4

    Flutter + SharedPreferences:如何使用FutureBuilder

  5. 5

    使用Futurebuilder有条件地渲染小部件

  6. 6

    如何在futurebuilder中设置用户ID

  7. 7

    服务器关闭时如何在FutureBuilder中显示小部件?

  8. 8

    如何同时使用FutureBuilder和setState方法?

  9. 9

    在main.dart中使用FutureBuilder

  10. 10

    Flutter FutureBuilder具有数据和连接状态

  11. 11

    Flutter:如何在使用FutureBuilder时仅从api获取数据?

  12. 12

    如何在已经获得的未来中实现FutureBuilder

  13. 13

    如何在FutureBuilder中修复递归HTTP请求?

  14. 14

    如何在SmartRefresher上实现FutureBuilder-Flutter Dart

  15. 15

    如何在FutureBuilder中将参数传递给Future属性函数

  16. 16

    如何在 FutureBuilder 中从请求中呈现数据

  17. 17

    使用来自sqflite的数据填充FutureBuilder时出错

  18. 18

    我在Flutter中使用FutureBuilder时遇到问题

  19. 19

    使用 FutureBuilder 时,Mobx Observer 无法按预期工作

  20. 20

    如何使用FutureBuilder手动触发AsyncSnapshot错误

  21. 21

    使用FutureBuilder onPressed prefixIcon后如何更新TextFormField内容?

  22. 22

    坏状态Flutter使用FutureBuilder和Provider中没有任何元素

  23. 23

    Flutter-用户登录Firebase时FutureBuilder无法重建吗?

  24. 24

    FutureBuilder,SetState:删除setState时变量未更新

  25. 25

    Flutter FutureBuilder小部件在与Futures链接时不响应Future分辨率

  26. 26

    Dismissible和FutureBuilder不能一起使用

  27. 27

    将FutureBuilder与本地JSON一起使用时出错

  28. 28

    使用 FutureBuilder 时如何根据另一个下拉选择更改下拉项目?

  29. 29

    如何解决此错误:构建FutureBuilder <DataSnapshot>(脏,状态:_FutureBuilderState <DataSnapshot>#89711)时引发了以下断言:

热门标签

归档