gpt4 book ai didi

Flutter bloc pattern 多次重复调用函数

转载 作者:行者123 更新时间:2023-12-04 15:38:43 26 4
gpt4 key购买 nike

我正在尝试在 flutter 应用程序中使用 bloc 模式,我在 return Scaffold() 之前将代码写在构建函数的主体内;如下

@override
Widget build(BuildContext context) {
final ProductsController pController = Provider.of<ProductsController>(context);
pController.addProducts();
return Scaffold();
}

一切都很完美,但功能addPrducts() 调用了太多次它看起来下面的代码自己重复了很多次

pController.addProducts();

这是 ProductsContoller 类的结构

class ProductsController extends ChangeNotifier {
List<Products> _products=List();
AppDatabase appDB=AppDatabase();
List<Products> get products=>_products;
addProducts() {
appDB.getFromTable(AppDatabase.TBL_PRODUCTS).then((rows){
rows.forEach((row){
Products product=Products.fromJson(row);
_products.add(product);


});
notifyListeners();
});
}
}

最佳答案

如果您的函数只应被调用一次,您应该尝试覆盖 initState() 方法并在那里调用它。如果您的类扩展了一个 StatefulWidget,您的 build(BuildContext context) 方法可能会被调用多次。

final ProductsController pController

@override
void initState() {
pController = Provider.of<ProductsController>(context);
pController.addProducts();

super.initState();
}

关于Flutter bloc pattern 多次重复调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58879324/

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