【问题标题】:Flutter Web - Unable to compile, dual import issues in packageFlutter Web - 无法编译,包中的双重导入问题
【发布时间】:2020-08-13 03:51:53
【问题描述】:

我正在尝试在基于浏览器的应用程序中使用此 package。尝试编译到 Chrome 时,我得到了这个:

编译器消息: /C:/flutter/.pub-cache/hosted/pub.dartlang.org/whiteboardkit-0.1.8/lib/gesture_whiteboard_controller.dart:63:15: 错误:“Point”是从“dart:math”和“dart:ui”导入的。 ..add(Point.fromOffset(position)); ^^^^^ /C:/flutter/.pub-cache/hosted/pub.dartlang.org/whiteboardkit-0.1.8/lib/gesture_whiteboard_controller.dart:77:39: 错误:“Point”是从“dart:math”和“dart:ui”导入的。 this.draw.lines.last.points.add(Point.fromOffset(secondPoint));

这似乎是特定于包的,所以我想我的问题是为什么 'dart:math' 和 'dart:ui' 之间会有冲突?

【问题讨论】:

    标签: flutter dart flutter-web


    【解决方案1】:

    无法回答您的问题为什么uimath 之间会发生冲突,只能给出一个原因。在数学中肯定有一个概念调用Point,因此有定义这个的类。在 dart:ui 中,您正在处理基于 2D 坐标系的屏幕或要绘制的画布,因此 Point 指的是屏幕中的这些点之一。

    您可以简单地将其中一个Point 从这样的导入之一中隐藏起来。

    import 'dart:ui' hide Point;
    import 'dart:math';
    

    或者反过来。

    import 'dart:ui' ;
    import 'dart:math' hide Point;
    

    替代使用别名进行导入并将其与别名一起用作前缀。

    import 'dart:ui' as ui;
    import 'dart:math';
    
    // and somewhere in the code use it like 
    
    add(ui.Point.fromOffset(position));
    

    【讨论】:

    • 感谢 Abhilash,这很有帮助。由于这是一个白板包,我想最好隐藏数学点?不过,我会玩弄它。再次感谢。
    • 很高兴它对您有所帮助..您也可以接受答案吗?让人们知道它的答案。 :)
    • 抱歉,我好像点错了地方。解释了很多,我猜...
    猜你喜欢
    • 2021-06-21
    • 2020-01-31
    • 1970-01-01
    • 2020-07-09
    • 2021-12-28
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 2018-10-07
    相关资源
    最近更新 更多