错误:[Dart]参数类型“Context”无法赋值给参数类型“BuildContext”。[argument_type_not_assignable]

39

我该如何修复这个问题?我不确定它是否是由Flutter更新引起的。

输入图像描述

12
请勿将代码以图片形式发布,而应以文本形式发布。这样可以让其他人通过搜索找到它。 - Klaus Gütter
1
首先将上下文传递给函数。- getGroup(snapshot,context),然后定义函数如下 - getGroup(async.....,BuildContext context) - anmol.majhail
14个回答

148

在我的代码中,import 'package:path/path.dart' 存在冲突。我的做法是给它起了一个别名 import 'package:path/path.dart' as Path,这样就解决了。


1
好的发现!这么随意的事情,程序因为它而无法运行! - mjakic
5
谢谢!一旦您导入了别名,您只需要更新使用它的任何函数为Aliasname.function,我们就可以开始了。例如,basename() 变成了 Path.basename()。 - maiko
2
那其实是正确的答案,应该被标记为“正确答案”。 - matshidis
Flutter为什么不会在这里显示更好的错误信息……这只是一个简单的“嘿,我们不确定您指的是哪个上下文”的错误,应该在这里显示。 - Merthan Erdem
在添加了 provider: ^6.0.4 后开始出现问题。使用这个修复或者 this.path 也可以解决。 - Nestor Ledon

49

使用this.context代替context


这对我有用,非常感谢。为什么会这样?您能详细说明一下为什么这是解决方案吗? - Llama

17

对我来说,问题出在我导入了import 'package:path/path.dart';

虽然实际上我并不需要它,所以无法识别context


16

出现这个问题是因为使用了JS库(import 'dart:js';),我将其移除后,错误就消失了。


8
在你的代码中:先将上下文传递给函数 - getGroup(snapshot,context),然后定义函数如下 - getGroup(async.....,BuildContext context){...}

7

对我而言,是这个问题:我导入了import 'package:path/path.dart';

导入'package:path/path.dart'时发生了某些冲突。所以我给它起了一个别名,像这样:import 'package:path/path.dart' as Path,这样就可以正常工作了。


4

检查你的页面顶部是否导入了 import 'dart:js';?如果导入了,请将其移除,然后它就可以正常工作。


4

只需删除顶部的import 'dart:js'

如果您仍然遇到相同的问题,请改用BuidContext context代替context


2
对我而言,那是path包。
// import 'package:path/path.dart'; This line source of the error
import 'package:path/path.dart' as Path;

// join()
Path.join()

2
如果您已经导入了此内容,请将其删除。(Flutter意外地导入了它)
import 'dart:js';

或者任何其他你不认识的 `sus` 导入。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接