Flutter类型错误:MaterialStateProperty<Color>?无法赋值给Color参数
Flutter类型不匹配错误解决:MaterialStateProperty? 无法赋值给Color
问题核心是answerColor参数要求的是Color类型,但你代码里返回的是MaterialStateProperty<Color>对象——这是用于支持状态变化(比如按钮按下、hover等)的属性类型,并不适用于直接接收单一Color的参数。
直接修改代码,去掉MaterialStateProperty.resolveWith包装,直接返回对应颜色值即可:
answerColor: answerSelected ? answer['score'] ? Colors.green : Colors.red : null,
如果你的answerColor实际上是某个支持状态样式的属性(比如自定义组件的特殊参数),那需要确认参数类型是否应为MaterialStateProperty<Color>?,如果是,那保持MaterialStateProperty.resolveWith的写法,但要修正原代码的语法错误(回调函数写法不正确):
answerColor: answerSelected ? answer['score'] ? MaterialStateProperty.resolveWith<Color>((states) => Colors.green) : MaterialStateProperty.resolveWith<Color>((states) => Colors.red) : null,
但根据错误提示,显然answerColor需要的是Color类型,所以第一种修改方式就能直接解决问题。
内容的提问来源于stack exchange,提问作者Momin shakeel
相关产品推荐
相关产品推荐

