首页 > 解决方案 > 使用 Cubit 状态管理 Flutter sqflite red 查询报错

问题描述

我想使用 sqlite 和 Flutter Cubit 构建一个 crud 应用程序,问题是当我想从我的数据库中删除数据时,它会返回一个错误。我在控制台中测试我的查询它工作完美但是当我使用 Listview 它不工作。我虽然可能问题与我的 Cubit 实现有关,但事实并非如此,这是我的代码:

 database red query: 
 Future<List<Account>> redAllAccounts() async {
    final result = await db.query('account');
    return result.map((e) => Account.fromjsonAccount(e)).toList();
  } 



my Cubit file: 
 import 'package:bloc/bloc.dart';
import 'package:project/Model/account.dart';
import 'package:project/control/database.dart';

class AccountCubit extends Cubit<List<Account>> {
  AccountCubit(intistate) : super(intistate);

  Future getAccount() async {
    DatabaseHelper database = DatabaseHelper();
    List<Account> account;

    account = await database.redAllAccounts();
    emit(account);
  }
}
 
my list account file: 
 
class AccountList extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    BlocProvider.of<AccountCubit>(context).getAccount();
    //  var account = BlocProvider.of<AccountCubit>(context).account;
    return Container(
      padding: EdgeInsets.all(20),
      child: BlocBuilder<AccountCubit, List<Account>>(
        builder: (context, state) {
          return ListView.builder(
              padding: EdgeInsets.all(20),
              itemCount: state.length,
              itemBuilder: (context, index) {
                var acc = state[index];
                return Column(
                  children: [
                    Text(acc.name),
                    //  Text(acc.adress),
                    TextButton(
                        onPressed: () {
                          // BlocProvider.of<AccountBlock>(context)
                          //     .add(AccountEvent.delete(acc.accountNumber));
                        },
                        child: Text('delete'))
                  ],
                );
              });



***error: 
 NoSuchMethodError (NoSuchMethodError: The method 'query' was called on null.
Receiver: null
Tried calling: query("account"))***

标签: fluttersqfliteflutter-blocflutter-state

解决方案


推荐阅读