자식이 위제에서 부모 위젯의 state를 사용하려면 3가지 단계가 필요하다 .
(자식 => 부모) (동급 위젯 => 동급 위젯) 끼리는 state 전달 안됨

1. 보내기
2.자식 위젯에 등록하기
3.쓰기
1. 보내기
return DialogUI(state : a);
DialogUI 위젯에
작명 : 보내고자 하는 state
를 파라미터로 담는다
2. 자식 위젯에 등록하기
class DialogUI extends StatelessWidget {
DialogUI({Key? key,this.state}) : super(key: key);
final state;
두 곳에 등록해줘야 한다.
this.state
final state
여기서 final 은 변수 var 과 같지만 나중에 변경이 안되는 변수를 만들때 사용한다.
(부모 위젯에서 가져온 state를 자식위젯에서 변경하면 에러를 일으킬 수 있어 관습적으로 final 사용)
3. 사용하기
사용한다.
tip) 자주 사용되는 중요한 state는 어떤 위젯도 가져다가 쓰게 최대한 상위 위젯에 보관하는게 좋다. MyApp 이런데 넣으면 됨
<class 문법>
class를 사용할때 파라미터를 입력할 수 있도록 class를 업글할 수 있음.
class DialogUI extends StatelessWidget {
DialogUI(this.state1,this.state2);
final state1;
fianl state2;
클래스명() 써주고 그 안에 필요한 파라미터를 넣어줌
var또는 final을 사용해서 변수명 정의해야함
그런데 이렇게 하면 파라미터 2개 다 입력해야함 안그러면 에러를 낸다.
그래서
class DialogUI extends StatelessWidget {
DialogUI({this.state1,this.state2});
final state1;
fianl state2;
{} 사용해서 옵셔널을 하면 파라미터 2개가 있지만 1개를 넣든 안넣든 상관없다.
원래 코드에 있던 keyeh 파라미터로 입력할 수 있다는 것
'Flutter' 카테고리의 다른 글
| Flutter - pageView, onPageChanged (0) | 2023.02.10 |
|---|---|
| Flutter - 자식이 위젯에서 부모 위젯의 state 바꾸기, input 받기 (0) | 2023.01.07 |
| Flutter - Dialog/ 모달창 만들기, context (0) | 2023.01.06 |
| Flutter - StatefulWidget 만들기 (0) | 2023.01.06 |
| Flutter - ListView.builder (0) | 2022.12.15 |