flutter - 在 Dart/Flutter 中,如何使用方法中的变量,以便将其输出到文本字段
问题描述
希望有人可以提供帮助-几周前我遇到了这个死胡同,并认为我已经在我有限的知识范围内尝试了所有方法。
我已经建立了一个可以正常工作的数据库——也就是说,我可以在一个屏幕上添加数据、查看数据并在另一个屏幕上编辑数据。现在,我想将在“debugPrint”中证明的我能够做到的列(牛肉)之一汇总到控制台。我想从 'sumBeef' 方法访问这个变量 'beefTotal' 并在 UI 的文本字段中打印显示它。我只是无法管理它。它只是返回空值。
提前感谢您的帮助。
import 'package:flutter/material.dart';
import 'package:take_note/utils/database_helper.dart';
class Info extends StatefulWidget {
@override
State<StatefulWidget> createState() => _InfoState();
}
DatabaseHelper helper = DatabaseHelper();
var database = DatabaseHelper();
class _InfoState extends State<Info> {
List beefTotal;
@override
Widget build (BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Beef Info"),
backgroundColor: Colors.lightBlueAccent,
),
body: Container(
child: Column(
children: <Widget>[
Expanded(
child: Center(
child: RaisedButton(
onPressed: (){
sumBeef();
},
),
),
),
Expanded(
child: Center(
child: Text("Total Beef is: £ $beefTotal", style: TextStyle(
color: Colors.lightBlueAccent,
fontSize: 30.0,
fontWeight: FontWeight.w400
),),
),
),
],
),
)
);
}
void sumBeef () async {
beefTotal = await database.addBeef();
debugPrint("Total beef: $beefTotal");
}
}
下面的代码来自一个名为 DatabaseHelper 的类,方法 sumBeef() 使用该类
Future<List<Map<String, dynamic>>> addBeef()async{
Database db = await this.database;
var result = await db.rawQuery("SELECT SUM(beef) FROM $table");
return result;
}
```[enter image description here][1]
[1]: https://i.stack.imgur.com/L46Gj.png
解决方案
只需调用 setState({
});
void sumBeef () async {
beefTotal = await database.addBeef();
setState(() {});
debugPrint("Total beef: $beefTotal");
}
和你的好!每当您进行更改时,您都必须调用 setState 方法来更新 ui(重建)在颤振的情况下
推荐阅读
- angular - Amchart 图例 值和标记之间的边距不起作用
- .net - Azure AD Identity.Client 调用 AcquireTokenByUsernamePassword,得到 406 错误
- python - 试图绘制数据框中缺失的百分比
- r - Rmarkdown - 编织时如何查看警告
- node.js - 刮取数字的字符串
- android - 更新 firebase 构建版本后无法运行应用程序
- scala - SBT:是否可以在 build.sbt 中加载用户类并运行它?
- r - 使用单条从标准条形图(或 ggplot2 geom_col)创建图标
- ios - Swift UINavigation 底线和阴影移除,无需导航栏颜色更改
- javascript - PHP 和 Bootstrap 中的多项目轮播