flutter 안에서는 State관리가 최고로 중요하다.
처음에는 Android와 iOS와는 다른 life cycle에 살짝 당황했던...
이제 적어도 Parent Widget(부모위젯)이 child Widget(자식위젯)에게 State Data 전달해주는 부분은 파악하여 공부한대로 적어보려고 한다 :)_
먼저, StatefulWidget을 상속받은 Parent Widget에서 아래와 같이 데이터를 child Widget으로 넘긴다.
var childData = "자식으로 넘겨줄 데이터입니다.";
.
.
ChildWidget(data: childData);
이렇게 넘겨주면 child Widget 안에서 Text 찍어보는 방식은 아래와 같다.
class ChildWidget extends StatefulWidget {
final String childData; // 자식위젯 안에서는 데이터를 변경해줄 일이 없으니까 final로 선언한다.
ChildWidget(this.childData);
@override
ChildWidgetState createState() => ChildWidgetState();
}
class ChildWidgetState extends State<ChildWidget> {
@override
Widget build(BuildContext context) {
return SafeArea(
child: Text(widget.childData);
);
}
}
Child Wdiget에 있는 childData에 접근하기 위해서는 widget.childData로 불러와야한다.
그러면 Parent Widget에서 childData에 대한 setState() 함수가 호출이 되어도 바뀐 데이터를 Child Widget 안에서 확인할 수 있다.
잘 못 알고 있는 부분이나 추가적으로 알면 좋은 부분에 대해선 댓글로 알려주세요 :(