繁体   English   中英

错误:返回类型“CategoryState”不是“Widget”,这是闭包上下文所要求的

[英]error: The return type 'CategoryState' isn't a 'Widget', as required by the closure's context

我试图将路由放到同一页面上的另一个 Class 并编写此代码如 flutter 文档中所述。 我明白了

错误:根据闭包上下文的要求,返回类型CategoryState不是Widget

页面代码

导航代码

class CategoryState 不是一个小部件,它只是一个 Dart class 您想要导航到 Category()

根据文档: https://flutter.dev/docs/cookbook/navigation/navigation-basicsMaterialPageRoute ZA2F2ED4F8EBC2CBB14C21A29DCZ40 的构建器 function 应该返回一个小部件 StatelessWidgetStatefulWidget都扩展了Widget class,因此可以在这里使用。

但是在您的情况下, CategoryState class 没有扩展它们中的任何一个,这就是您遇到该错误的原因。

您需要改用Category class。

然后它应该看起来像:

页:

class Category extends StatefulWidget {
  @override
  _CategoryState createState() => _CategoryState();
}

class _CategoryState extends State<Category> {
  @override
  Widget build(BuildContext context) {
      return Column(
          children: [
              Container(child: Text("Music")),
              Container(child: Text("Projects")),
              Container(child: Text("Essay")),
          ],
      );
  }
}

导航

Navigator.push(
   context,
   MaterialPageRoute(builder: (context) => Category())
);

此外,我建议您为此 class 名称(例如 CategoryScreen)添加一个后缀,以避免名称冲突,以防您有另一个 class(例如模型)具有相同的名称。

回家我的回答有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM