Flutter Web - 无法编译,包中存在双重导入问题

Joh*_* vN 0 dart flutter flutter-web

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

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

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

Abh*_*ran 5

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

Point您可以简单地从导入之一中隐藏其中之一,如下所示。

import 'dart:ui' hide Point;
import 'dart:math';
Run Code Online (Sandbox Code Playgroud)

或者反之亦然。

import 'dart:ui' ;
import 'dart:math' hide Point;
Run Code Online (Sandbox Code Playgroud)

或者使用别名进行导入,并将其与别名一起用作前缀。

import 'dart:ui' as ui;
import 'dart:math';

// and somewhere in the code use it like 

add(ui.Point.fromOffset(position));
Run Code Online (Sandbox Code Playgroud)