BuildContext
위젯트리에서 현제 위젯의 위치를 알 수 있는 정보이다.
build라는 함수 앞에 위젯은 타입을 나타낸다. 즉 이것은 타입이 위젯인 함수인것,
build 메서드로 들어오는 인자값은 바로 BuildContext라는 타입의 context라는 인자값인것
build함수는 Scaffold라는 위젯을 리턴하는데 이때에 위젯트리상에서 어디에 위치하느냐에 대한 정보를 가지고 있는 Context를 넣어서 리턴을 해준다고 한다
🤷♀️🤷♀️🤷♀️
BuildContext는 stateless위젯이나 state빌드 메서드에 의해서 리턴 된 위젯의 부모가 된다.
리턴된 Scaffold는 부모인 MyHomePage의 context를 그대로 물려받는다는 의미이다.
만약 어떤 필요에 의해 위젯트리 상에서 Scaffold위젯의 위치가 필요하다면 현재 Scaffold위젯의 context를 참조한다면
"Scaffold.of() called with a context that does not contain a Scaffold"라는 에러를 보게 될 것
상식적으로 context를 참조하는게 맞지만 context는 위젯트리상에서 Scaffold위젯이 어디에 위치하는지 모른다.
Scaffold 위젯 밑에서 build메서드로 무언갈 위젯을 리턴하면 그 위젯은 부모인 Scaffold위젯의 진정한 context를 물려받게 되는것.