【发布时间】: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吗?
-
不,你不必