在Dart / Flutter中,如何使用方法中的变量,以便可以将其输出到文本字段

希望有人能提供帮助-几周前,我走到了穷途末路,并认为我已经尽我所能尝试了一切。

我已经建立了一个工作正常的数据库-也就是说,我可以在一个屏幕上添加数据,查看数据并在另一屏幕上编辑数据。现在,我想对控制台中的“ debugPrint”中已证明的列(牛肉)进行汇总。我想从“ sumBeef”方法访问此变量“ beefTotal”,并在用户界面的文本字段中进行显示。我只是无法管理它。它只是返回null。

在此先感谢您的帮助。

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
a15116337758 回答:在Dart / Flutter中,如何使用方法中的变量,以便可以将其输出到文本字段

只需致电 setState({

});

void sumBeef () async {
 beefTotal = await database.addBeef();
 setState(() {});
 debugPrint("Total beef: $beefTotal");
}

和你的好!每次进行更改时,都必须调用setState方法以在出现问题的情况下更新ui(重建)

本文链接:https://www.f2er.com/3121597.html

大家都在问