В Flutter, как я могу автоматически обновлять экран с обновленными записями, нажав на кнопку удалить

#flutter #dart

Вопрос:

Ниже приведен виджет, он не обновляет экран обновленными записями при нажатии кнопки удалить. Как я могу обновить экран с измененным списком, нажав кнопку удалить. Он обновляется только тогда, когда я обновляю.

 
@override
  Widget build(BuildContext context) {
    return BlocProvider<UsersCubit>(
      create: (context) => UsersCubit()..getUsers(),
      child: Scaffold(
        appBar: AppBar(
          title: const Text("All Users List"),
        ),
        body: BlocBuilder<UsersCubit, List<UserModel>?>(
          builder: (context, allUsers) {
            if (allUsers!.isEmpty) {
              return const Center(
                child: CircularProgressIndicator(),
              );
            }
            return ListView.builder(
                itemCount: allUsers.length,
                itemBuilder: (context, index) {
                  return Card(
                    child: ListTile(
                      title: Text(allUsers[index].name),
                      trailing: IconButton(
                          icon: const Icon(Icons.delete_forever),
                          onPressed: () {
                            setState(() {
                              _dataService.deleteUser(allUsers[index].id);
                              BlocProvider.of<UsersCubit>(context).getUsers();
                            });
                          }),
                    ),
                  );
                });
          },
        ),
      ),
    );
  }
}

 

Комментарии:

1. Использовать StatefulWidget?

2. Да, я использовал виджет с отслеживанием состояния ,

3. Привет Мухамад 🙂 Не могли бы вы уточнить, был ли комментарий Козуби полезным? Это решило вашу проблему?

4. попробуйте вместо этого использовать панель вкладок и создайте метод, который возвращает виджет