为什么我会收到没有空值的空错误?

问题描述 投票:0回答:1

我正在尝试使用 Flutter 访问 Supabase 数据库中的外键字段。当我在 Supabase 仪表板上查看时,所有表行都没有空值,但是,当我在模拟器中运行应用程序时,我在第 53 行收到异常(标题:Text(data['payee(name)' ]),)我不明白为什么。检查侧边栏中的变量显示

  • 数据 = 地图(4 项)
  • 0 =“id”-> 2
  • 1 =“日期”->“2019-05-01”
  • 2 =“金额”-> 1290
  • 3 =“payee_id”-> 地图(1 项)
  • key =“payee_id”
  • 值 = 地图(1 项)
  • 0 =“姓名”->“鹅头保险”
  • 索引 = 0

我的观点的代码如下:

class HomePage extends StatelessWidget {
  HomePage({super.key});
  final SupabaseClient supabase = Supabase.instance.client;

  Future<List> readData() async {
    final result = await supabase.from('transactions').select('''
    id,
    date,
    amount,
    payee_id (name)
    ''');
    return result;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Supabase Course'),
        actions: [
          IconButton(
            onPressed: () async {
              await supabase.auth.signOut();
            },
            icon: const Icon(Icons.logout),
          )
        ],
      ),
      body: FutureBuilder(
        future: readData(),
        builder: (BuildContext context, AsyncSnapshot snapshot) {
          if (snapshot.hasError) {
            return Center(
              child: Text(snapshot.error.toString()),
            );
          }

          if (snapshot.hasData) {
            if (snapshot.data.length == 0) {
              return const Center(
                child: Text("No data available.\n Create new data"),
              );
            }
            return ListView.builder(
              itemCount: snapshot.data.length,
              itemBuilder: (BuildContext context, int index) {
                var data = snapshot.data[index];
                return ListTile(
                  title: Text(data['payee(name)']), // <---error here!
                  trailing: IconButton(
                    onPressed: () {
                      Navigator.push(
                          context,
                          MaterialPageRoute(
                              builder: (context) =>
                                  EditPage(data['id'].toString(), data['id'])));
                    },
                    icon: const Icon(Icons.chevron_right_outlined),
                  ),
                );
              },
            );
          }

          return const Center(
            child: CircularProgressIndicator(),
          );
        },
      ),
    );
  }
}

我在第 53 行收到的错误是“_TypeError(类型‘Null’不是类型‘String’的子类型)”,但是,正如我所说,表中没有空值,并且变量检查器没有显示任何空值。空值。我无法弄清楚问题是什么。

flutter supabase supabase-flutter
1个回答
0
投票

我在您的数据中没有看到收款人(姓名)的键。 只是 payee_id(姓名)。

© www.soinside.com 2019 - 2024. All rights reserved.