缺少state.build的具体实现

6

我在Dart中遇到了这个错误:“缺少状态构建的具体实现”。

第一个方法如下:

class MyHomePage extends StatefulWidget {
  // String titleInput;
  // String amountInput;
  @override
  MyHomePageState createState() => MyHomePageState();
}

class MyHomePageState extends State<MyHomePage> {
  final List<Transaction> _userTransactions = [
    // Transaction(
    //   id: "t1",
    //   title: "New Shoes",
    //   amount: 69.99,
    //   date: DateTime.now(),
    // ),
    // Transaction(
    //   id: "t2",
    //   title: "Weekly Groceries",
    //   amount: 16.53,
    //   date: DateTime.now(),
    // ),
  ];

有人知道这个错误是什么意思,以及如何解决吗?

谢谢。

5个回答

9

需要在您的widget的State中添加一个build方法,这个方法描述了您的widget所代表的用户界面部分,例如, (将此添加到MyHomePageState中)

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child:
            Container(
              height: 200,
              width: 100,
              color:  Colors.yellow,
        ),
      ),
    );
  }

5
检查关闭Widget build方法所在的class的大括号是否正确。你可能只是把它关闭在了错误的位置。
这就是我的情况。
因此,请确保你的build方法位于包围类的大括号内部。
class _LandingPageState extends State<LandingPage> {
    Widget build(BuildContext context) {
    ...
}

1
所有有状态的小部件和无状态的小部件都应该有 build 方法。
@override
Widget build(BuildContext context) {
    return Container(
       ...
    );
}

如果您想在不使用build的情况下使用它,不要扩展该类与State,请像这样使用。
class YourClassName {
}

0

只是检查一下

@override
Widget build( Buildcontext context)
{ 
return Container();
}

检查构建的拼写

原因:当您使用无状态或有状态小部件扩展类时,使用覆盖方法来覆盖已在父类中编写的预定义方法,该父类是无状态/有状态类


0

前往 State<T> 类的定义并查看抽象方法。您将发现 build() 方法是唯一的抽象方法,即没有实现体的方法。因此,当您从 State<MyHomePage> 继承时,必须重写 build() 并提供实现体;基本上您将在 build() 方法中创建您的 Widgets

因此,为了修复错误,请将以下代码添加到您的类中:

class MyHomePageState extends State<MyHomePage> {
   @override
   Widget build(BuildContext context) {
      return Scaffold( // Your Widget
         ...
      );
   }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接