首页 > 解决方案 > 无法在包含 StatefulWidget 的颤振文件中添加 mongodart

问题描述

我当然是第一个提出这个问题的人,因为我在互联网上没有发现任何关于这个问题的信息。当我尝试mongodart在我的颤振应用程序的主文件中导入时,我在我的 IDE(VsCode)中遇到了这个错误,当我尝试运行项目时flutter run

名称“State”在库“framework.dart”和“mongo_dart.dart”中定义。

更多的:

编译器消息:lib/main.dart:37:32:错误:预期 0 类型参数。class _MyHomePageState extends State { ^ lib/main.dart:34:20: 错误:方法 'MyHomePage::createState' 的返回类型是

lib1::_MyHomePageState,与被覆盖方法的返回类型不匹配 (#lib2::State<#lib2::StatefulWidget>)。更改为

#lib2::State<#lib2::StatefulWidget> 的子类型。_MyHomePageState createState() => new _MyHomePageState(); ^ file:///home/quentin/flutter/packages/flutter/lib/src/widgets/framework.dart:1:错误:这是被覆盖的方法('createState')。lib/main.dart:41:5:错误:找不到方法:'setState'。setState(() { ^^^^^^^^ lib/main.dart:41:5: 错误:没有为类 '#lib1::_MyHomePageState' 定义方法 'setState'。尝试将名称更正为现有方法的名称,或定义名为“setState”的方法。setState(() { ^ lib/main.dart:63:25: Error: Getter not found: 'widget'.title: new Text(widget.title ), ^^^^^^ lib/main.dart:63:25: 错误:getter 'widget' is' t 为类“#lib1::_MyHomePageState”定义。尝试将名称更正为现有 getter 的名称,或定义一个名为“widget”的 getter 或字段。标题:新文本(widget.title),

注意:StatefulWidget 是示例应用程序中的一个。

我确定这个问题是mongodart由于当我删除:

import 'package:mongo_dart/mongo_dart.dart';

任何形式的错误都会消失。是导致问题的代码。

标签: androidmongodbdartfluttermongo-dart

解决方案


是的,mongo 包中有一个名为“State”的类会导致冲突,您可以使用该包的别名,就像这样。

import 'package:mongo_dart/mongo_dart.dart' as mongo;

如果您想访问任何 mongo_dart 类,只需使用:

mongo.NameOfTheClass 

推荐阅读