해결된 질문
작성
·
72
1
안녕하세요 선생님
선생님께서 올려주신 사진에 context.read()를 쓰셨는데
context.watch()를 써야 하는거 아닌가? 해서요
notifyListener()에 의해서 --> 반응하여 badge 함수가 불리는 거면
일회용인 read가 아닌 watch가 적절하지 않나 싶어서요...
명쾌한 답변 부탁드립니다 ㅎㅎ! 감사합니다..!
답변 1
1
안녕하세요 유하님
MyBadge 내부에서 addListener로 변경사항을 청취하기 때문에 read로 1회성 접근을 하셔도 됩니다.
또한 해당 위치는 InheritedWidget의 라이프사이클상 context.watch()
로 접근할 수 없는 위치라서 read로만 접근할 수 있습니다.
감사합니다 🙂
InheritedWidget의 라이프사이클상
context.watch()
로 접근할 수 없는 위치가 이해가 조금 안갑니다 ㅠㅠㅠ우선 제가 이해한건 provider패키지는 내부적으로 InheritedWidget을 사용하여 상태관리를 구현했기 때문에 InheritedWidget 라이프사이클을 고려해야 한다는 거랑
context.read는 build 메서드 외부에서 주로 사용
context.watch는 주로 build 메서드 내에서 사용한다 이정도입니다.