it-swarm.dev

다른 예외가 발생했습니다. 'MyApp'유형이 'StatelessWidget'유형의 하위 유형이 아닙니다.

방금 Flutter를 사용하기 시작했으며 "또 다른 예외가 발생했습니다. 'MyApp'유형이 'StatelessWidget'유형의 하위 유형이 아닙니다."를 실행하는 동안이 문제가 발생했습니다. 그리고 흥미로운 부분은 내 코드 에이 'StatelessWidget'조차도 없다는 것입니다.

   import 'package:flutter/material.Dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return _MyAppState();
  }
}

class _MyAppState extends State<MyApp> {
  List<String> _bars = ['Olivio bar'];
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
          appBar: AppBar(
            title: Text('Drinkzz'),
          ),
          body: Column(
            children: [
              Container(
                margin: EdgeInsets.all(10.0),
                child: RaisedButton(
                  onPressed: () {
                    _bars.add('Riviera Bar');
                  },
                  child: Text('Add new Bar!'),
                ),
              ),
              Column(
                children: _bars
                    .map((element) => Card(
                          child: Column(
                            children: <Widget>[
                              Image.asset('assets/olivio.jpg'),
                              Text(element)
                            ],
                          ),
                        ))
                    .toList(),
              )
            ],
          )),
    );
  }
}

나는 정말로 길을 잃었고 약간의 도움을 줄 것이다!

감사,

25
Leonardo

Jonah Williams가 말했듯이 ,

MyAppStatelessWidget에서 StatefulWidget로 변경 한 경우 main에서 호출되므로 핫 다시 시작해야합니다.

이것은 라이브 코딩 세션에서 여러 번 설명되었으므로 initState()과 같은 함수를 변경하면 앱을 다시 시작해야합니다. MyApp 위젯의 상태 관련 속성을 변경 한 경우 해당 변경 사항을 적용하려면 앱을 다시 시작해야합니다.

기본적으로 , 앱을 핫 리로드하면 build() 함수를 호출하고 initState()은 다음 경우에만 호출됩니다. initState() 기능을 변경 한 위젯을 포함하여 모든 것이 다시 시작되도록 앱을 다시 시작합니다.

48
BasedMusa