我正在dlblack.dev上慢慢地建立我的个人网站,并且我正在尝试为它增添一点情趣。例如,从计算机(而不是平板电脑或手机,因为它们没有鼠标指针),如果您将鼠标悬停在任何可点击项目上,它不会改变您的鼠标指针以指示它是可点击的,并且可点击对象根本没有改变。我决定遵循这个 FilledStacks 教程,但它没有提到任何关于解决这个问题的内容。
基本上发生的事情是当我通过教程视频(他编写骨架扩展类)并尝试复制它大约 2.5 分钟时,除了名称之外,VS Code 几乎红线了整个类声明。我正在写的内容与他在 2:26 在屏幕上看到的内容完全相同,这是我的代码:
import 'package:flutter/material.dart';
import 'dart:html' as html;
extension HoverExtension on Widget{
}
当我这样做时,“extension”、“on”和“Widget”都被红线了。当我将鼠标悬停在“扩展”上时,它会显示以下内容:
Undefined class 'extension'.
Try changing the name to the name of an existing class, or creating a class with the name 'extension'. dartundefined_class
This requires the 'extension-methods' language feature to be enabled.
Try updating your pubspec.yaml to set the minimum SDK constraint to 2.6 or higher, and running 'pub get'. dart(experiment_not_enabled)
我做的第一件事是在我的 pubspec.yaml 文件中将我的最小 SDK 约束更改为 2.6.0。然后我把它改成了 2.7.0,因为网上很多人说扩展是在 Dart 2.7 中发布的。我在这个主题上做了很多谷歌搜索,但似乎没有人和我有同样的问题:我没有 analysis_options.yaml 文件。我创建了一个,并且仅将其放入其内容中:
include:
analyzer:
enable-experiment:
- extension-methods
linter:
从理论上讲,我相信一旦我flutter pub get
从根文件夹中的命令行运行,应该可以解决我的问题;它没有。我不知道出了什么问题。有什么建议么?