我正慢慢地把我的个人网站建到dlblack.dev岁以上,我正试着给它增添一点情趣.例如,从计算机(而不是平板电脑或手机,因为它们没有鼠标指针)上,如果您将鼠标指针悬停在任何可单击的项目上,它不会更改鼠标指针以指示它是可单击的,并且可单击对象也完全不会更改.我已经决定遵循this FilledStacks tutorial,但是它没有提到任何关于解决这个问题的内容.
基本上,当我花2.5分钟浏览教程视频(他在其中编写骨架扩展类)并try 复制它时,会发生什么,而代码会将除了名称之外的几乎整个类声明用红线标出.我写的和他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中将我的最小SDK约束更改为2.6.0.yaml文件.然后我把它改成了2.7.0,因为很多网上的人都说扩展是在Dart 2.7中发布的.我在谷歌上搜索了很多关于这个问题的信息,但似乎没有人和我有同样的问题:我没有分析选项.yaml文件.我创建了一个,并在其内容中添加了only个:
include:
analyzer:
enable-experiment:
- extension-methods
linter:
理论上,我相信一旦我从根文件夹中的命令行运行flutter pub get
,它应该可以解决我的问题;没有,我不知道怎么了.有什么建议吗?