首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flutter扩展-方法不起作用,它显示“未定义的类”和“需要扩展方法语言功能”

Flutter扩展-方法不起作用,它显示“未定义的类”和“需要扩展方法语言功能”
EN

Stack Overflow用户
提问于 2020-05-14 00:27:13
回答 5查看 8.5K关注 0票数 11

我正在慢慢地建立我的个人网站

dlblack.dev

,我正在试着让它变得更有趣一点。例如,从计算机(而不是平板电脑或手机,因为它们没有鼠标指针)上,如果您将鼠标指针悬停在任何可单击的项目上,它不会更改鼠标指针以指示它是可单击的,并且clickable对象也完全不会更改。我决定跟随

本FilledStacks教程

,但它没有提到任何有关解决此问题的内容。

基本上发生的事情是,当我花了大约2.5分钟看完教程视频(他在那里编写框架扩展类)并试图复制它时,VS Code红线标注了除了名称之外的几乎整个类声明。我正在写的东西和他2:26在屏幕上看到的完全一样,下面是我的代码:

代码语言:javascript
复制
import 'package:flutter/material.dart';
import 'dart:html' as html;

extension HoverExtension on Widget{
  
}

当我这样做时,"extension“、"on”和"Widget“都加了红线。当我将鼠标悬停在“扩展”上时,它会显示以下内容:

代码语言:javascript
复制
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中发布的。我已经做了很多关于这个主题的谷歌搜索,但似乎没有人有和我一样的问题:我没有分析

_

options.yaml文件。我创建了一个,并将

仅限

它的内容如下:

代码语言:javascript
复制
include:

analyzer:
  enable-experiment:
    - extension-methods

linter:

从理论上讲,我相信这应该可以解决我的问题,一旦我运行

从我的根文件夹中的命令行;它没有。我不知道出了什么问题。有什么建议吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-05-14 08:24:09

对于pubspec.yaml和分析中的更改

_

要执行options.yaml,您必须重新启动Dart分析服务器。在VSCode中,这和Ctrl+Shift+P ->重新加载窗口一样简单。

票数 21
EN

Stack Overflow用户

发布于 2020-07-29 00:53:30

在Android Studio中,解决这个问题需要三个步骤:

在pubspec.yaml中更新SDK版本(必须为2.6.0或更高版本)

环境: sdk:">=2.7.0 <3.0.0“

工具-> Flutter -> Flutter清理

关闭项目并重新打开它(例如,File -> Close项目)

票数 22
EN

Stack Overflow用户

发布于 2020-07-22 07:23:00

我不得不做

,然后关闭并重新打开VSCode。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61779848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档