我的dart分析显示代码中存在以下错误:

error: Evaluation of this constant expression throws an exception. 
        (const_eval_throws_exception at [laundry] 
        lib\pick_drop_ui\pages\works.dart:97) error: Arguments of a constant creation must be constant expressions. 
        (const_with_non_constant_argument at [laundry] 
        lib\pick_drop_ui\pages\works.dart:98) error: Arguments of a constant creation must be constant expressions. 
        (const_with_non_constant_argument at [laundry] 
        lib\pick_drop_ui\pages\works.dart:104) error: Evaluation of this constant expression throws an exception. 
       (const_eval_throws_exception at [laundry] 
       lib\pick_drop_ui\pages\works.dart:104)

在以下代码中:

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

class work extends StatefulWidget {
  @override
  _workState createState() => _workState();
}

class _workState extends State<work> {

  var workdata;                        //Variable to get the snapshort of the works available in the firestore

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    print("Called work");
    setState(() {
      workdata = getData();
    });
  }


  getworkdetails(){
    if(workdata != null){
      return StreamBuilder(
        stream: workdata,
        builder: (context,snapshot){
          if(snapshot.data != null){
          return ListView.builder(
            shrinkWrap: true,
            itemCount: snapshot.data.documents.length,
            itemBuilder: (context,i){
              return workcards(snapshot.data.documents[i].data['Name of customer'],snapshot.data.documents[i].data['Address']);
            },
          );
          }else{
            return Text("Malfunction");
          }
        },
      );
    }else{
      print("getting workdata");
    }
  }




  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Jobs Assigned"),
      ),

      body: getworkdetails(),
    );
  }
}


getData() {
  return Firestore.instance.collection('Jobs').snapshots();
}


class workcards extends StatelessWidget{

  final  name;
  final  address;

  workcards(this.name,this.address);


  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Card(
      color: Colors.blueGrey[50],
      child: InkWell(
        splashColor: Colors.blue[100].withAlpha(100),
        onTap: () {
        },
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            const ListTile(
              leading: Icon(Icons.view_module),
              // Error: invalid constant value
              title: Text(
                name,
                style: TextStyle(
                  fontWeight: FontWeight.w600,
                  letterSpacing: .5,
                ),
              ),
              // Error: invalid constant value
              subtitle: Text(address),
            ),
            ButtonBar(
              children: <Widget>[
                RaisedButton(
                  child: const Text('OPEN'),
                  onPressed: () {/* ... */},
                  focusElevation: 10,
                ),
                RaisedButton(
                  child: const Text('SHARE'),
                  onPressed: () {/* ... */},
                  focusElevation: 20,
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

推荐答案

删除ListTile之前的const关键字.

通常,为了拥有一个编译时常量的小部件,它的所有属性也应该是编译时常量.在您的例子中,这是不可能的,因为title属性只能通过计算name来实现,而name只有在运行时才知道.

Dart相关问答推荐

S,返回Future.sync()的函数和不需要等待的异步函数有什么区别?

如何找到这个Currate函数的返回类型?

FlutterError (setState() 在 dispose() 之后调用:(生命周期状态:defunct,not mounted)

如何在 Dart 中创建画布元素?

try 部署到 Google AppEngine 时出现 Dev_appserver.py 错误

如何在 Flutter 的小部件树中将新的 MaterialPageRoute 作为子项打开

如何在 Flutter 中渲染单个像素?

无法将小部件标记为需要构建,因为框架已经在构建小部件的过程中

Flutter 以编程方式触发 FutureBuilder

有没有办法知道我的Flatter应用程序使用的是哪个Android API版本?

每次我按下导航项时,底部的导航栏都会重新加载所有小部件

Firebase Crashlytics 崩溃未报告给 Flutter 中的 Firebase 控制台

如何判断一个字符串是否可以是 json.decode

'Future' 的实例而不是显示值

如何从目录中获取文件列表并将其传递给ListView?

如何更改手机屏幕上的Flutter应用程序名称显示?

Dart null 安全性不适用于类字段

DART:future的语法 then

如何在dart中生成随机字符串?

Dart 中的错误与异常