参数类型“字符串?”不能分配给参数类型“字符串”

Posted

技术标签:

【中文标题】参数类型“字符串?”不能分配给参数类型“字符串”【英文标题】:argument type 'String?' can't be assigned to the parameter type 'String' 【发布时间】:2021-10-21 00:00:33 【问题描述】:

参数类型“字符串?”无法分配给参数类型“字符串”我收到此错误,但之前代码工作正常。我见过有人提出同样的问题,但我不了解根本原因。我使用的包是来自 github 的 flutter_audio_query nullsafe 版本。有人可以帮我解决这个问题。

【问题讨论】:

试试这个:await player.setUrl(songInfo.uri!); 【参考方案1】:

字符串?这是可为空的,您不能直接传递给非空字段。 所以像这样使用,

await player.setUrl(songInfo.uri ?? ''); // if null then empty string will be passed.

await player.setUrl(songInfo.uri!); // this is you saying that it won't be null.

【讨论】:

以上是关于参数类型“字符串?”不能分配给参数类型“字符串”的主要内容,如果未能解决你的问题,请参考以下文章

错误:参数类型“字符串?”不能分配给参数类型“字符串”

参数类型“字符串”不能分配给参数类型“对象?函数(对象?,对象?)?

参数类型“对象?”不能分配给参数类型“字符串”

错误:参数类型“对象?”不能分配给参数类型“字符串”

“数字”类型的参数不能分配给“数字和字符串”类型的参数

参数类型“字符串”不能分配给 uri.encodeFull() 中的参数类型“Uri”