无法将“颜色”类型的值分配给“字符串”类型的变量

时间:2020-07-15 02:56:48

标签: flutter dart

在使用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,
    });
}

enter image description here

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:3)

您正在尝试将类型Color分配给String类型的变量,请更改:

final String color;

针对:

final Color color;

Dart是一种强类型语言,它禁止您将其他类型的值分配给已声明类型的变量。 ColorString在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;