在使用material.dart库中的Colors.black属性时出现错误。
错误:不能将类型为“颜色”的值分配给类型为“字符串”的变量。尝试更改变量的类型,或将右侧类型转换为“字符串”。
import 'package:flutter/material.dart';
class Category {
final String id;
final String title;
final String color;
const Category({
@required this.id,
@required this.title,
this.color = Colors.black,
});
}
任何帮助将不胜感激
答案 0 :(得分:3)
您正在尝试将类型Color分配给String类型的变量,请更改:
final String color;
针对:
final Color color;
Dart是一种强类型语言,它禁止您将其他类型的值分配给已声明类型的变量。
Color
和String
在Dart中都是Objects
,但类型不同。
如果不确定要传递给变量的类型,请使用关键字var
进行声明:
var color;
这样,您可以为其分配任何类型。不建议您这样做,因为这样一来,您将无法享受使用Dart等强类型语言所带来的好处。
答案 1 :(得分:2)
final String color;
声明类型为color
的变量String
。
this.color = Colors.black
正在将Color
类型的对象分配给String
变量。
将final String color
更改为final Color color
。
答案 2 :(得分:1)
您可以设置颜色的类型
final Color color ; or final int color;