[TIL-021] Flutter 위젯 파헤치기 - Builder

BuildContext 

`BuildContext`는 Flutter 위젯 트리에서 위젯의 위치와 상태에 대한 정보를 제공하는 객체.
쉽게 말해, 현재 위젯이 위젯 트리 안에서 어디에 위치해 있는지 알려주는 역할을 한다.

  • 위젯 트리를 따라 부모, 자식, 형제 위젯에 접근할 때 사용
  • Theme, MediaQuery, Navigator 같은 상위 계층에 있는 데이터에 접근할 때 필요

 

 

`Navigator.pop`을 사용할 때 `context`를 인자로 넘겨줘야한다.

`mybutton`커스텀위젯은 `build`메서드 내부에 있는 위젯이 아니기 때문에 `context`에 접근을 할 수 없어 에러가 발생한다.

 

해결 방법은 2가지가 있다.

 

인자로 Context를 사용

 

  • `myButton`을 호출 할 때 `build`메서드에 있는 `context`를 인자로 넘겨주면 해결 가능

 

Builder 위젯 사용

 

마무리

위 상황의 `StatelessWidget`에서만 해당되는 내용이다.

만약 `StatefulWidget`이면 `State`클래스의 `build`메서드 밖에 있는 메서드에 인자를 보내 사용하지 않고도 context에 바로 접근 할 수 있다.