#flutter #dart #setstate #pull-to-refresh
Вопрос:
я использую RefreshIndicator, и он хорошо работает , но не смог сделать его функциональным для моей базы данных , я думаю, что мое состояние набора неверно, можете ли вы помочь мне использовать состояние набора, чтобы сделать его функциональным, вот моя страница продукта..
class FeaturedProducts extends StatefulWidget {
@override
_FeaturedProductsState createState() => _FeaturedProductsState();-
}
class _FeaturedProductsState extends State<FeaturedProducts> {
final keyRefresh = GlobalKey<RefreshIndicatorState>();
List<ProductModel> products = [];
@override
void initState() {
super.initState();
loadProducts();
}
Future loadProducts() async {
keyRefresh.currentState?.show();
await Future.delayed(Duration(milliseconds: 4000));
setState(() => this.products = products);,
}
@override
Widget build(BuildContext context) {
final productProvider = Provider.of<ProductProvider>(context);
return RefreshIndicator(
keyRefresh: keyRefresh,
onRefresh: loadProducts,
child: ListView.builder(
scrollDirection: Axis.vertical,
itemCount: productProvider.products.length,
itemBuilder: (_, index) {
return FeaturedCard(
product: productProvider.products[index],
);
}));
}
}
Ответ №1:
Я не уверен на 100%, в чем проблема, но на первый взгляд я могу подумать, что вам лучше использовать FutureBuilder?
Честно говоря, я не совсем понимаю вопрос… :