参数类型“jsObject”不能分配给“buildContext”参数?

Posted

技术标签:

【中文标题】参数类型“jsObject”不能分配给“buildContext”参数?【英文标题】:The argument type 'jsObject' can't be assigned to 'buildContext' parameter? 【发布时间】:2020-03-17 21:37:58 【问题描述】:

当我尝试在浮动操作按钮小部件中放置需要将 buildcontext 作为参数的方法时发生该错误。

我尝试将相同的方法移动到具有构建器的不同小部件并且效果很好,那么为什么 FA 按钮没有父上下文? 这是发生的地方:

runApp(MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
          appBar: AppBar(
            title: Text('policies list'),
          ),
          body: getList(),
          floatingActionButton: FloatingActionButton(
            child: Icon(Icons.add),
            onPressed: () => showSB(context),
          ))));`

【问题讨论】:

【参考方案1】:

您上面的代码没有 context,因为您没有为 homeStatefulStateless 类/strong>

我认为你应该这样做

void main() => runApp(MyApp());

class MyApp extends StatelessWidget 
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Home(),
    );
  


class Home extends StatelessWidget 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      floatingActionButton: FloatingActionButton(
        onPressed: ()
          someMethodThatTakesContextAsParameter(context);
        ,
      ),
    );
  

  void someMethodThatTakesContextAsParameter(BuildContext context)

  

希望这对你有用。

【讨论】:

非常感谢它的工作,但它显示了一个新的异常(Scaffold.of() 使用不包含 Scaffold 的上下文调用。) 我在这里找到了 --> ***.com/questions/51304568/… thx

以上是关于参数类型“jsObject”不能分配给“buildContext”参数?的主要内容,如果未能解决你的问题,请参考以下文章

获取错误“未知”类型的参数不能分配给“错误”类型的参数 |空值'

参数类型“对象?”不能分配给参数类型'String'最新版本

参数类型“Type”不能分配给参数类型“FirebaseUser”

参数类型“字符串”不能分配给参数类型“目录”

参数类型“字符串”不能分配给参数类型“对象?函数(对象?,对象?)?

参数类型“Widget”不能分配给参数类型“PreferredSizeWidget?”