使用 RIkuloUI 飞镖。为什么没有输出?

Dart with RIkuloUI. Why is there no output?

编码员们晚上好,

我对 Dart 有一个严重的问题,Rikulo_Ui 更具体地说,问题只出现在 Rikulo_Ui。

我真的是所有 Dart 东西的新手,所以请保持温和,不要犹豫,询问更多信息。

我的问题是,一旦我尝试使用 Rikulo_ui 组件,我只能在浏览器中看到一个白屏,没有任何显示。真的没什么。调用 rikulo 部分之前的代码,但第一次调用 Rikulo 方法会导致白屏错误。所以对于这段代码:

import 'package:rikulo_ui/view.dart';
import 'dart:js' as js;
void main() {
  js.context.callMethod("alert",["Hello"]);
  final welcome = new TextView("Hello World!");
  welcome.profile.location = "center center";
  welcome.on.click.listen((event) {
    welcome.text = "Hi, this is Rikulo.";
    welcome.style.border = welcome.style.border.isEmpty ? "1px solid blue": "";
    welcome.requestLayout(); //need to re-layout since its size is changed
  });
  welcome.addToDocument();
}

警报已完美调用,但随后我只看到白屏。 dartium 浏览器的开发者工具导致我出现以下异常:

package:rikulo_ui/src/view/view_impls.dart:26 Exception: No static getter 'browser' declared in class '_ViewImpl'.

NoSuchMethodError: method not found: 'browser'
Receiver: Type: class '_ViewImpl@107880211'
Arguments: [...]

我将 pub 与教程中的配置一起使用,并添加了依赖项 rikulo_ui 并使用了 pub getpub install

应该显示我的代码的 HTML 文件如下所示:

<!DOCTYPE html>
<html>
<head>
    <title>Hello World!</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <link rel="stylesheet" type="text/css" href="packages/rikulo_ui/css/default/view.css" />
</head>
<body>
<script type="text/javascript" src="packages/browser/interop.js"></script>
<script type="application/dart" src="HelloWorld.dart"></script>
<script src="packages/browser/dart.js"></script>
</body>
</html>

Rikulo端下载的example退出同样报错。我真的无法使用任何 Rikulo 组件。我还确保 Dartium 和 Dart 都具有相同的版本 (1.13.0)。

感谢您的帮助!

此致, 托尔斯滕

一些建议与您问题中的相关问题无关,但在尝试 Dart 时会为您省去更多问题:

为了让所有工具都能正常工作,您应该坚持 Pub 包布局约定 https://www.dartlang.org/tools/pub/package-layout.html

  • 在 GitHub 存储库中,pubspec.yaml 文件应该位于顶层(没有 Dart 子目录)。在这种情况下这无关紧要,但会阻止将存储库添加为 pubspec.yaml 中的依赖项。 https://www.dartlang.org/tools/pub/dependencies.html#git-packages

  • Web 入口页面应位于 web 顶级目录中。这个比较重要。

  • 只是一个 Dart 风格指南建议:在文件和包名称中只使用小写字母和下划线。这确保一切在所有操作系统上都能正常运行。

  • 添加具体的版本限制,而不是 noneany。当发布的旧包本身没有适当的约束时,这通常会导致意外的旧包版本,如果由于不兼容的约束与最近的包存在分辨率冲突,有时会选择这些旧版本。

请升级到最新的 Rikulo UI (0.8.0)。我修复了最新SDK的一些不兼容问题。