Flutter Web - Невозможно скомпилировать проблемы двойного импорта в пакете - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь использовать этот пакет в браузерном приложении. При попытке скомпилировать в Chrome, я получаю следующее:

Сообщение компилятора: /C:/flutter/.pub-cache/hosted/pub.dartlang.org/whiteboardkit-0.1. 8 / lib / gest_whiteboard_controller.dart: 63: 15: Ошибка: «Точка» импортирована из «dart: math» и «dart: ui». ..add (Point.fromOffset (положение)); ^^^^^ /C:/flutter/.pub-cache/hosted/pub.dartlang.org/whiteboardkit-0.1.8/lib/gesture_whiteboard_controller.dart:77:39: Ошибка: точка импортируется из оба «дротик: математика» и «дартс: интерфейс». this.draw.lines.last.points.add (Point.fromOffset (secondPoint));

Похоже, что пакет указывает c, поэтому я предполагаю, что мой вопрос заключается в том, почему возникнет конфликт между «Дарт: математика» и «Дарт: UI»?

1 Ответ

1 голос
/ 29 апреля 2020

Ответ на ваш вопрос, почему возникнет конфликт между ui и math, не может быть дан ответ, а только приводится причина. В математике определенно есть концептуальный вызов 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));
...