我在我的项目中使用 Getx 控制器。我已经为 FutureBuilder 创建了用于显示列表的控制器,但未在 Future Function 上设置 .Obs。我正在分享代码。
class PPHomeController extends GetxController {
Future<List<PPProductRenterModel>> listNearProduct;
// i want to set .Obs end of the "listNearProduct" but it's not working because of Future.
FetchNearProductList({@required int price}) async {
listNearProduct = CallGetNearProducts();// Http API Result
}
}
{
PPHomeController _homeController = Get.put(PPHomeController());
Widget mainProductListView() {
return FutureBuilder<List<PPProductRenterModel>>
(builder: (context, AsyncSnapshot<List<PPProductRenterModel>> projectSnap){
if(!projectSnap.hasData){
if(projectSnap.connectionState == ConnectionState.waiting){
return Container(
child: Loading(),
);
}
}
return ListView.builder(
itemCount: projectSnap.data.length,
itemBuilder: (context, index) {
PPProductRenterModel …Run Code Online (Sandbox Code Playgroud) 我最初在列中的小部件列表为空。现在在“其他小部件”上单击“我正在在 _contactItems 中添加新的自定义小部件”
Column(
children: _contactItems,
)
List<Widget> _contactItems = new List<CustomWidget>();
_contactItems.add(newCustomWidget(value));
Run Code Online (Sandbox Code Playgroud)
现在假设我有 6 条记录(列中有 6 个自定义小部件)。我正在尝试删除索引记录(例如,我要删除第三条记录,然后删除第一条记录。列小部件(动态小部件)应更新为 _contactItems 中的更新setState())
现在,在CustomWidget上单击“我将从列中删除该特定的CustomWidget”。
setState(() {
_contactItems.removeAt(index);
});
Run Code Online (Sandbox Code Playgroud)
还尝试过
_contactItems.removeWhere((item) {
return item.key == _contactItems[index].key;
});
Run Code Online (Sandbox Code Playgroud)