错误:[dart] 参数类型“Context”不能分配给参数类型“BuildContext”。 [argument_type_not_assignable]
Posted
技术标签:
【中文标题】错误:[dart] 参数类型“Context”不能分配给参数类型“BuildContext”。 [argument_type_not_assignable]【英文标题】:error: [dart] The argument type 'Context' can't be assigned to the parameter type 'BuildContext'. [argument_type_not_assignable] 【发布时间】:2019-04-23 16:43:23 【问题描述】:我该如何解决这个问题?我不确定这是否是由 Flutter 更新引起的。
【问题讨论】:
请不要将代码发布为图像,而是以文本形式发布。这允许其他人搜索它。 首先将上下文传递给函数。 - getGroup(snapshot,context) 然后定义函数 - getGroup(async.....,BuildContext context) 【参考方案1】:在您的代码中:首先将上下文传递给函数。 - getGroup(snapshot,context)
然后定义类似的函数 - getGroup(async.....,BuildContext context)...
【讨论】:
【参考方案2】:与import 'package:path/path.dart'
存在一些冲突。就我而言,我在其中添加了一个别名 import 'package:path/path.dart' as Path
并且它起作用了。
【讨论】:
好收获!这么随机的东西和程序不会因为它而运行! 谢谢!导入别名后,您只需将使用它的任何函数更新为 Aliasname.function 即可。即 basename() 变为 Path.basename()。 那其实是正确答案,应该已经标记为“正确答案” 为什么 Flutter 不会在这里显示更好的错误......这是一个简单的“嘿,我们不确定你指的是哪个上下文”错误,应该在这里显示【参考方案3】:对我来说,是我导入了import 'package:path/path.dart';
虽然我并不真正需要它,所以它无法识别context
。
【讨论】:
【参考方案4】:对我来说,这是由于 js 库(
import 'dart:js';
)。我删除了它,错误消失了。
【讨论】:
我遇到了同样的问题。 这里也一样!我很困惑。【参考方案5】:使用this.context
代替context
。
【讨论】:
这对我有用,非常感谢。为什么会这样?您能否详细说明为什么这是解决方案【参考方案6】:检查您的页面顶部是否导入了import 'dart:js';
?如果是,请将其删除,它会起作用。
【讨论】:
【参考方案7】:只需删除import 'dart:js
(在顶部)。
如果您仍然面临同样的问题,请使用BuidContext context
而不是context
。
【讨论】:
【参考方案8】:如果import: 'package:path/path.dart' as Path';
不起作用,请使用this.context
,它会起作用。
【讨论】:
【参考方案9】:就我而言,
我有一个函数 _myRestaurants
,我必须添加 context
作为参数来消除错误。
_myRestaurants(context)
List<Widget> restaurantList = [];
restaurants.forEach((Restaurant restaurant)
restaurantList.add(
GestureDetector(
onTap: () => Navigator.push(
context, // <-- this was the issue
MaterialPageRoute(
builder: (_) => RestaurantScreen(restaurant: restaurant),
),
),
通过在
BuildContext context
或 Justcontext
功能帮助我解决了问题并且我的代码正在运行 100% 取得好成绩。
【讨论】:
【参考方案10】:对我来说,是我导入了import 'package:path/path.dart'
;
导入 'package:path/path.dart' 存在一些冲突。因此,在像这样在其中添加别名后:import 'package:path/path.dart' as Path
,对我来说效果很好。
【讨论】:
【参考方案11】:只需删除import 'dart:js
(在顶部)。改用 BuidContext 上下文
【讨论】:
您能否解释一下为什么会有帮助?以上是关于错误:[dart] 参数类型“Context”不能分配给参数类型“BuildContext”。 [argument_type_not_assignable]的主要内容,如果未能解决你的问题,请参考以下文章
参数类型 'num?'不能分配给参数类型 'num'.dart(argument_type_not_assignable)
错误:无法将参数类型“String”分配给参数类型“Uri”。 'Uri'来自'dart:core' [重复]
参数类型 'Book' 不能分配给参数类型 'Map<String, dynamic>'.dart(argument_type_not_assignable)