【问题标题】:How to read and assign this value to variable in sqlite Flutter?如何读取此值并将其分配给 sqlite Flutter 中的变量?
【发布时间】:2019-02-22 06:26:34
【问题描述】:

如何从外部类访问静态变量? 这是我的代码,Url 使用 sqflite 保存在本地存储中,我想获取值并打印。 打印结果为空

DatabaseHandler.dart

//GET URL
  Future<List<Url>> getUrl() async{
    var db_connection = await db;
    List<Map> list = await db_connection.rawQuery("SELECT * FROM Url");
    List<Url> urls = List();
    for(int i = 0; i < list.length; i++){
      Url url = Url();
      url.id = list[i]['id'];
      url.uniform_resource_locator = list[i]['uniform_resource_locator'];
      urls.add(url);
    }
    return urls;
  }

readUrl.dart

import '...'

Future<List<Url>> getUrlFromCache() async {
  var dbHelper = DBHandlerUrl();
  Future<List<Url>> urls = dbHelper.getUrl();
  return urls;
}
class readUrlTesting extends StatelessWidget {
  static var url;
  @override
  Widget build(BuildContext context) {
return FutureBuilder<List<Url>>(
              future: getUrlFromCache(),
              builder: (context, snapshot) {
                if (snapshot.data != null) {
                  if (snapshot.hasData) {
                   url = snapshot.data[1].uniform_resource_locator;
                    return Text(url);
                  }
                  return Container(
                    alignment: AlignmentDirectional.center,
                    child: CircularProgressIndicator(),
                  );

                }
              });
  }
}

LoginScreen.dart

如果用户按下按钮,我想在控制台中显示 Url。

child: RaisedButton(
            onPressed: ()
            print(readUrlTesting.url);),

【问题讨论】:

  • 查看 medium.com/flutter-community/… 并使用 Scoped Model 例如
  • @pskink 如何使用范围模型?我读了我不知道的文章
  • 我在上面贴的链接中有一个小代码,见UserModelScreenclass
  • 还需要使用FutureBuilder吗?
  • 不,你不必

标签: dart flutter


【解决方案1】:

根据FutureBuilder documentation,未来应该在 StatelessWidget.build 方法(您正在使用)中获得。您要么必须将未来传递给此小部件的构造函数,要么将小部件更改为 StatefulWidget 并在 State.initState 方法中获取未来。

希望对您有所帮助。

另外,您是否使用 FutureBuilder 只是为了从期货中获取价值?如果是这样,您可以在异步方法中使用 await 或在将来的对象上使用 .then

【讨论】:

    猜你喜欢
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 2020-08-07
    • 2023-04-07
    • 2019-12-22
    • 2021-12-05
    相关资源
    最近更新 更多