首页
学习
活动
专区
圈层
工具
发布

Flutter | 定义一个通用的多功能网络请求 Widget

确认网络请求控件所需要的功能 我们从最开始的图中明显能看出来的,其实是有三个功能: 1.请求数据并显示 Loading2.正常时返回正常数据,错误时返回错误 Widget3.错误 Widget 可以点击重新请求...正常时返回正常数据,错误时返回错误 Widget 这就需要我们封装好的网络请求和 FutureBuilder 有一个互动了, 网络请求的逻辑如下: ?...Widget,因为后续在网络请求中的时候也返回该 Widget,这样不会显得乱。...然后在 ConnectionState.done 中判断是否存在数据,如果有的话,就显示传进来的 Widget。 如果返回错误,则返回错误的 Widget。..., params: widget.params); }); } 错误 Widget 的点击事件写成这个就 ok 了,这样就重新创建了该 FutureBuilder,也就是重新请求了。

2.1K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Flutter】Future 与 FutureBuilder 异步编程代码示例 ( FutureBuilder 构造函数设置 | 处理 Flutter 中文乱码 | 完整代码示例 )

    文章目录 一、FutureBuilder 简介 二、处理 Flutter 中的中文乱码 三、完整代码示例 四、相关资源 一、FutureBuilder 简介 ---- FutureBuilder 本质是组件...: FutureBuilder 构造好以后 , 会自动执行异步操作 , 并返回 Widget 组件 , 因此 FutureBuilder 也是一个组件 , 在不同的状态下显示不同样式的组件 ; FutureBuilder...泛型设置 : FutureBuilder 的泛型 , 表示异步调用得到的 Future 的泛型 , 也就是返回结果的格式 ; FutureBuilder 表示异步调用 Future...的返回值是 Future ; Future future 参数设置 : 这是设置的是异步操作方法 , 下面的 httpGet() 方法 , 是一个返回 FutureWidget 组件 ; FutureBuilder 构造函数完整代码示例 : @override Widget build(BuildContext context) { return

    3.1K20

    HTTP返回码总结,拿走不谢!

    http状态返回代码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。 http状态返回代码 代码 说明 100(继续) 请求者应当继续提出请求。...http状态返回代码 2xx (成功) 表示成功处理了请求的状态代码。 http状态返回代码 代码 说明 200(成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。...203(非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 204(无内容) 服务器成功处理了请求,但没有返回任何内容。...服务器返回此响应时,不会返回网页内容。 305(使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。...一些常见的http状态返回代码为: 200- 服务器成功返回网页 404- 请求的网页不存在 503- 服务不可用

    3.1K20

    我的 Flutter TDD 心路历程

    "); }); 复制代码 单测失败 编写让单测通过的最小实现版本 思考:入参需要增加一个字段,代表是否还有下一页;同时当列表滑动到最后一个 item 的时候,返回一个 loading Widget...的时候,count = feedModel.listData.length,在用例中即为 4,而 ListView builder 实现中,我们判断了当 index == count - 1 的时候,返回...思考:由于「加载更多」是由列表内部触发的,如果我们想知道加载什么时候结束,我们就必须拿到加载的句柄,在 Dart 中,一般我们用 Future 来表示,于是我们能想到:我们可以从外部传入一个返回 Future...build(BuildContext context) { return FutureBuilder( // 注释1:如果是加载第一页,直接触发 onLoadMore, 并将返回的...Future 传给 FutureBuilder; 如果不是第一页,将 null 返回给 FutureBuilder,此时代码就会走入到 else 分支,注释2处 future: isFirstLoad

    1.5K20
    领券