创建一个可重用的FutureBuilder可以通过以下步骤实现:
以下是一个示例代码,展示了如何创建一个可重用的FutureBuilder:
import 'package:flutter/material.dart';
class ReusableFutureBuilder<T> extends StatelessWidget {
final Future<T> future;
final Widget Function(BuildContext, AsyncSnapshot<T>) builder;
final T initialData;
ReusableFutureBuilder({
@required this.future,
@required this.builder,
this.initialData,
});
@override
Widget build(BuildContext context) {
return FutureBuilder<T>(
future: future,
initialData: initialData,
builder: (BuildContext context, AsyncSnapshot<T> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
return builder(context, snapshot);
}
},
);
}
}
使用示例:
ReusableFutureBuilder<String>(
future: fetchData(),
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data);
} else {
return Text('Loading...');
}
},
)
在上面的示例中,ReusableFutureBuilder接收一个future参数和一个builder参数。future参数是一个Future对象,builder参数是一个回调函数,用于根据Future的状态构建不同的小部件。在这个示例中,根据Future的状态,显示数据或加载指示器。
这是一个简单的示例,你可以根据自己的需求进行修改和扩展。对于更复杂的场景,你可能需要添加更多的回调函数和处理逻辑。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体的产品和服务可能会有所变化。建议访问腾讯云官方网站以获取最新的产品信息和文档。
领取专属 10元无门槛券
手把手带您无忧上云