“必须为文本小部件提供非空字符串”(Flutter)

时间:2020-10-13 21:25:42

标签: firebase flutter dart google-cloud-firestore

我尝试使用以下代码修复此问题,但恐怕该错误仍然很普遍:

The following assertion was thrown building:
A non-null String must be provided to a Text widget.
'package:flutter/src/widgets/text.dart':
Failed assertion: line 360 pos 10: 'data != null'

child: Row(
            children: [
              Text(
                  (contact.data()['rating'] == null)
                      ? "n/a"
                      : contact.data()['rating'].toString(),
                  style: TextStyle(
                      fontWeight: FontWeight.bold,
                      color: Colors.tealAccent)),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: CircleAvatar(
                  radius: 25,
                  backgroundImage: AssetImage("assets/girl2.jpg"),
                ),
              ),
              Spacer(),
              Text(
                contact.data()['name'],
                style: TextStyle(
                    fontWeight: FontWeight.w400, color: Colors.tealAccent),
              ),
              Spacer(),
              Text(
                contact.data()['location'],
                style: TextStyle(
                    letterSpacing: 1,
                    fontSize: 10,
                    fontWeight: FontWeight.w300,
                    color: Colors.tealAccent),
              ),
            ],
          ),

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以添加:

contact.data()['rating'] ?? "empty" 

上面将检查左侧的表达式是否不为null,如果为空,则将“空”添加到Text小部件。您还必须将条件添加到其他Text小部件中。