我正慢慢地把我的个人网站建到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,它应该可以解决我的问题;没有,我不知道怎么了.有什么建议吗?

推荐答案

要使pubspec.yaml和Analysis_options.yaml中的更改生效,您必须重新启动DART分析服务器.在VSCode中,这就像Ctrl+Shift+P->;重新加载窗口一样简单.

Dart相关问答推荐

具有级联省道的三元算子的奇异行为

如何在将构造函数参数赋给最终变量和传递给超级构造函数之前操作它?

Dart 可空记录与模式匹配:(String, int)?类型的匹配值无法分配给所需类型(Object?, Object?)

如何获取包含在 Dart 包中的assets资源 的文件路径?

你如何在 Polymer 中调度和监听自定义事件?

在 Dart 中定义一个接受参数的 getter

SliverList / SliverChildBuilderDelegate 提供初始索引或允许负索引

Flutter ButtonRow 填充

停止音频循环(audioplayers 包)

从real mobile浏览器访问Flatter localhost

Flutter DataTable - 点击行

如何循环遍历元素列表

如何创建类型别名

Dart 转换列表的每个元素

如何在 Dart 中获取字符串的字节数?

如何在dart中生成随机字符串?

是否可以在 Dart 中的一行上初始化列表?

如何在 Dart 中使用 Switch Case 语句

在 Dart 中是否有一种将 int 转换为 double 的快速方法?

列出dart中双点(.)的使用?