flutter - 导出的库在其他模块中不可见
问题描述
有一个名为collectionList
的库,它为 dart和Iterable
API添加了许多功能。
我想在它的基础上创建几个我自己的实用函数,比如mapNotNull
:
extension IterableExtension<E> on Iterable<E> {
Iterable<T> mapNotNull<T extends Object>(T Function(E event) f) =>
map((e) => f(e)).whereNotNull();
}
为了通过一次导入使所有扩展可见,我创建了一个新库,导出了我的扩展并在顶部添加:
// in core_utils module, in iterable_extension.dart file
export 'package:collection/collection.dart';
但是在我在其他包中导入这个库后,库中的 APIcollection
丢失了。我该如何解决?
import 'package:core_utils/core_utils.dart';
void main() {
[].mapNotNull((event) => 1); // compiles
[].none((e) => false); // compilation error
}
错误消息并没有真正的帮助:
The method 'none' isn't defined for the type 'List'. (Documentation)
Try correcting the name to the name of an existing method, or defining a method named 'none'.
解决方案
这是因为扩展名发生冲突。
改名
extension IterableExtension<E> on Iterable<E> {
例如
extension IterableExt<E> on Iterable<E> {
推荐阅读
- python - 使用 Python 抓取产品类别
- angular - 角度弹性布局错误:没有导出成员 ɵNgClassImpl 错误
- google-maps - 谷歌距离矩阵不返回东亚城市的铁路结果
- python - 我们如何将字符串转换为浮点数?
- java - JTable更改选择而不闪烁ui
- python - 如何使 ProcessPoolExecutor 中的任务表现得像守护进程?
- javascript - 抽象中间件函数
- laravel - 找不到类 '\Laravel\Socialite\Two\TwitterProvider' 错误
- video - ffmpeg 质量很差的 mp4 转换
- javascript - @hapi/joi 依赖的模块解析失败