반응형
질문
나는 방금 Flutter를 사용하기 시작했고 코드를 실행하는 동안이 문제가 발생했습니다. "Another exception was thrown: type 'MyApp' is not a subtype of type '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(),
)
],
)),
);
}
}
나는 정말로 헤매고 있으며 도움을 받을 수 있으면 감사하겠습니다!
감사합니다,
답변
Jonah Williams 가 말한대로,
MyApp
을StatelessWidget
에서StatefulWidget
로 변경했다면, main에서 호출되므로 핫 리스타트해야합니다.
이것은 라이브 코딩 세션에서 여러 번 설명되었습니다. initState()
와 같은 함수에서 변경 사항을 만들 때 앱을 다시 시작해야합니다. MyApp 위젯의 상태 관련 속성을 변경한 경우 해당 변경 사항이 적용되려면 앱을 다시 시작해야합니다.
기본적으로, 앱을 핫 리로드하면 build()
함수를 호출하며, initState()
는 앱을 다시 시작할 때만 호출되므로 initState()
함수를 변경한 위젯을 포함하여 모든 것을 다시 초기화합니다.
반응형
댓글