flutter - Flutter:名为“read”的成员在扩展“ReadContext”和“BuildContextX”中定义,两者都不是更具体的
问题描述
我的应用程序中有一个返回按钮:
onPressed: () {
return context
.read(FavoriteIds.provider.notifier)
.toggle(doa.id.toString());
},
在这种情况下,我使用了riverpod 提供程序。但是当我想导入一个flutter_bloc
包时,read
这条消息的关键字将是错误的
A member named 'read' is defined in extensions 'ReadContext' and 'BuildContextX' and neither is more specific. Try using an extension override to specify the extension you want to to be chosen.
请帮我解决这个问题。谢谢你 :)
解决方案
这意味着您要导入两个提供相同方法的扩展read
。考虑这个例子:
extension Ext1 on String {
void foo() => print("from extension 1");
}
extension Ext2 on String {
void foo() => print("from extension 2");
}
void main() {
String s = "hello";
s.foo();
}
这段代码应该打印什么?没有一个明显的答案,为了避免意外的编程错误,Dart 禁止这样做。
您可以在该方法上尝试“转到定义”(在大多数 IDE 中单击 ctrl/cmd)read
以导航到定义它的文件之一,然后删除相应的导入语句。
但是,删除该文件中的所有导入语句并使用自动完成功能将它们添加回来可能会更快
推荐阅读
- reactjs - 单击另一个组件中的按钮时如何显示/隐藏 React 组件?
- java - 当我加载我的我的世界时,我收到错误 java.lang.NullPointerExeption 我该如何解决这个问题?
- node.js - NodeJs / Express:避免对许多文件进行顺序处理
- ajax - 加载更多相同类别的帖子 - WordPress + Ajax + Timber
- excel - Excel UDF 被调用两次,每次返回不同的值
- vba - 链接到未绑定文本框的重新查询/空子表单
- python-3.x - 如何使用 Python SDK 从 Azure 数据湖中删除文件?
- python - 过滤熊猫中的布尔值
- log4j - 从 log4j 迁移到 log4j2:MaxFileSize 和 MaxBackupIndex 的等效属性
- javascript - topCalc 数据是否有访问器函数?