代码之家  ›  专栏  ›  技术社区  ›  Micah

颤振/飞镖错误:myappstate@16036154.build中出现意外标记0(无)

  •  1
  • Micah  · 技术社区  · 8 年前

    我在尝试执行此操作时遇到以下错误 tutorial 是的。奇怪的是,通过谷歌搜索这个错误消息并没有得到任何有用的信息。

    错误消息:

    I/flutter ( 5472): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY 
    ╞═══════════════════════════════════════════════════════════
    I/flutter ( 5472): The following _CompileTimeError was thrown building MyApp(dirty, state: _MyAppState#f8841):
    I/flutter ( 5472): 'file:///Users/micah/MobileApps/flutter_test_1/lib/main.dart': error: Unexpected tag 0 (Nothing) in
    I/flutter ( 5472): _MyAppState@16036154.build, expected a procedure, a constructor or a function node
    I/flutter ( 5472):
    I/flutter ( 5472): When the exception was thrown, this was the stack:
    I/flutter ( 5472): #0      StatefulElement.build (package:flutter/src/widgets/framework.dart:3730:27)
    

    main.dart文件:

    import 'package:flutter/material.dart';
    
    //    import './product_manager.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
          //  appBar: AppBar(
          //    title: Text('EasyList'),
          //  ),
          //  body: ProductManager(),
          ),
        );
      }
    }
    

    products.dart文件:

    import 'package:flutter/material.dart';
    
    class Products extends StatelessWidget {
      final List<String> products;
    
      Products(this.products);
    
      @override
      Widget build(BuildContext context) {
        return Column(
          children: products
            .map(
              (element) => Card(
                    child: Column(
                      children: <Widget>[
                        Image.asset('assets/food.jpg'),
                        Text(element)
                      ],
                    ),
                  ),
            )
            .toList()
          );
      }
    }
    

    product_manager.dart文件:

    import 'package:flutter/material.dart';
    
    import './products.dart';
    
    class ProductManager extends StatefulWidget {
      @override
      State<StatefulWidget> createState() {
        return _ProductManagerState();
      }
    }
    
    class _ProductManagerState extends State<ProductManager> {
      List<String> _products = ['Food Tester'];
    
      @override
      Widget build(BuildContext context) {
        return Column(
          children: [
            Container(
              margin: EdgeInsets.all(10.0),
              child: RaisedButton(
                onPressed: () {
                  setState(() {
                    _products.add('Advanced Food Tester');
                  });
                },
                child: Text('Add Product'),
              ),
            ),
            Products(_products)
          ],
        );
      }
    }
    
    1 回复  |  直到 8 年前
        1
  •  6
  •   Micah    8 年前

    单击“重新启动调试”修复了这些问题。

    我相信问题可能与我从一个 StatefullWidget 给一个 StatelessWidget 不重新启动调试器。