【问题标题】:How to fix Text returning instance of " " instead of the actual value?如何修复文本返回“”实例而不是实际值?
【发布时间】:2021-04-19 20:22:03
【问题描述】:

这是我关于这个问题的第二篇文章。由于我有限的飞镖知识,我无法弄清楚这一点。我总是搞砸期货部分。 这是问题所在的代码:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:slide_journal/Database_.dart';


class ListOfEntries extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
   return Scaffold(
     appBar: AppBar(
       shape: RoundedRectangleBorder(borderRadius: BorderRadius.vertical(bottom: Radius.circular(30))),
       title: Text("Your entries"),
       toolbarHeight: 50,
     ),
     body: FutureBuilder<List>(
       future: Database_().entries(),
       builder: (context, snapshot) {
         return snapshot.hasData ?
         new ListView.builder(
           padding: const EdgeInsets.all(10.0),
           itemCount: snapshot.data.length,
           itemBuilder: (context, i) {
             return Column(
               children: [
                 Text("${snapshot.data[i]}"),
               ],
             );
           },
         )
             : Center(
           child: Column(
           crossAxisAlignment: CrossAxisAlignment.center,
             mainAxisAlignment: MainAxisAlignment.center,
             children: [
               CircularProgressIndicator(),
               Text(""),
               Text("No entries yet:("),
             ],             
           
           )
         );
       }
    ),

    );

  }
  

}

这是从数据库部分读取的参考:

Future<List<Entry_>> entries() async {
    final Database db = await database;
    final List<Map<String, dynamic>> maps = await db.query('[Journal Entries]');
    return List.generate(maps.length, (i) {
      return Entry_ (
        maps[i]["_entry"],
        maps[i]["_date"],
      );
    });
  }

它不显示列表中的项目,而是显示: “'Entry_ 的实例 '"

【问题讨论】:

    标签: sqlite flutter dart


    【解决方案1】:

    您将Entry 对象传递给文本小部件。您需要从 Entry 对象中获取值。

    假设您的 Entry 课程如下所示。

    class Entry {
      final String entry;
      final String date;
    
      Entry({this.entry, this.date});
    }
    
    

    然后为了将实际的字符串传递给文本小部件,您可以这样做。

    Text("${snapshot.data[i].entry}")
    

    【讨论】:

      猜你喜欢
      • 2021-10-17
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多