我想打电话decodeUrl(...)
,我这样做是:
import "dart:uri";
main() {
decodeUrl("str");
}
但现在使用最新的 Dart-SDK,它报告:
Do not know how to load 'dart:uri'
import 'dart:uri';
^
似乎它已从 SDK 中删除。我搜索了很多,但仍然不知道它现在在哪里。现在如何使用decodeUrl(...)
最新的 SDK?
根据Dart 公告列表中的这个帖子,dart:uri
已被核心Uri类替换。
您的代码转换为:
main() {
decodeUrl("str");
}
虽然写起来可能更有指导意义print(Uri.decodeFull("str%20here"));
。
来自 Dart 的新版本公告、重大变化和其他重要新闻。
删除了库 dart:uri 并将类 Uri 添加到核心。
dart:uri 库已被删除。
发生了什么变化?
dart:uri 库已被删除。
该课程Uri
现在在core library
. , encodeUriComponent
, enocdeUri
,顶级函数已移至静态方法, decodeUriComponent
, , .decodeUri
dart:uri
Uri.encodeComponent
Uri.enocdeFull
Uri.decodeComponent
Uri.decodeFull
构造函数Uri.fromComponents
已重命名为 just Uri
,并且先前Uri
采用 URI 字符串的构造函数不再可用,而是必须替换为对静态方法 Uri.parse 的调用。
最后,处理空间加号和加号空间编码/解码已从Uri.encodeComponent
和中删除Uri.decodeComponent
。要获得此编码/解码,请使用添加的静态方法Uri.encodeQueryComponent
和Uri.decodeQueryComponent
.
除此之外,Uri 类还有其他功能。有关更多信息,请参阅更改和 dartdoc。
该课程的 dartdocUri
将在接下来的几天内得到改进。
谁受到影响?
dart:uri 的用户。
如何更新我的代码?
更改使用new Uri(...)
toUri.parse(...)
将 new 的使用更改Uri.fromComponents(...)
为new Uri(...)
将, , ,的调用更改为对encodeUriComponent
, enocdeUri
, decodeUriComponent
,的decodeUri
调用Uri.encodeComponent
Uri.enocdeFull
Uri.decodeComponent
Uri.decodeFull
最后检查你使用的事实,encodeUriComponent
并将decodeUriComponent
空格更改为加号并将加号更改为空格。如果是这样,请使用Uri.encodeQueryComponent
andUri.decodeQueryComponent
代替Uri.encodeComponent
andUri.decodeComponent