Flutter Web-无法编译软件包中的双重导入问题

时间:2020-04-29 06:12:36

标签: flutter dart flutter-web

我正在尝试在基于浏览器的应用程序中使用此package。尝试编译为Chrome时,出现以下提示:

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

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

1 个答案:

答案 0 :(得分: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));