【问题标题】:error: [dart] The argument type 'Context' can't be assigned to the parameter type 'BuildContext'. [argument_type_not_assignable]错误:[dart] 参数类型“Context”不能分配给参数类型“BuildContext”。 [argument_type_not_assignable]
【发布时间】:2019-04-23 16:43:23
【问题描述】:

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

【问题讨论】:

  • 请不要将代码发布为图像,而是以文本形式发布。这允许其他人搜索它。
  • 首先将上下文传递给函数。 - getGroup(snapshot,context) 然后定义函数 - getGroup(async.....,BuildContext context)

标签: flutter google-cloud-firestore


【解决方案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 或 Just context 功能帮助我解决了问题并且我的代码正在运行 100% 取得好成绩。

            【讨论】:

              【解决方案10】:

              对我来说,是我导入了import 'package:path/path.dart'

              导入 'package:path/path.dart' 存在一些冲突。因此,在像这样在其中添加别名后:import 'package:path/path.dart' as Path,对我来说效果很好。

              【讨论】:

                【解决方案11】:

                只需删除import 'dart:js(在顶部)。改用 BuidContext 上下文

                【讨论】:

                • 您能否解释一下为什么会有帮助?
                猜你喜欢
                • 2020-06-25
                • 2021-09-15
                • 1970-01-01
                • 2019-11-17
                • 2021-09-16
                • 1970-01-01
                • 2021-09-25
                • 1970-01-01
                相关资源
                最近更新 更多