代码之家  ›  专栏  ›  技术社区  ›  Marcelo Glasberg

在DART中,如果mywidget是widget类型,为什么(buildcontext,viewModel)=>mywidget不是(buildcontext,dynamic)=>widget的子类型?

  •  0
  • Marcelo Glasberg  · 技术社区  · 6 年前

    在飞镖中,如果:

    MyWidget 属于类型 Widget .

    那么为什么:

    (BuildContext, ViewModel) => MyWidget

    亚型:

    (BuildContext, dynamic) => Widget ?

    我该怎么解决这个问题呢?

    1 回复  |  直到 6 年前
        1
  •  0
  •   lrn    6 年前

    因为 dynamic 是超类型的 ViewModel ,所以函数接受 (BuildContext, ViewModel) 当函数接受时不能使用as参数 (BuildContext, dynamic) 是必需的。后者可以用第二个参数调用,第二个参数不是 视图模型 实例。

    所以,问题在于参数,而不是返回类型。