initState 에서 provider.read 를 해서 초기 데이타를 가져오고 싶은데 가능 한지요?
1328
작성한 질문수 2
안녕하세요.
중급 강의 잘 듣고 많은 도움이 되었습니다.
한가지 질문이 있는데요.
view의 initState 에서 provider read 를 통해 데이타를 가져와 state 에 넣어주고,
View 의 widget tree 내에서 watch 해서 쓰고 싶습니다.
아래처럼 provider.read 를 쓸 수는 없을까요? 꼭 onClick 같은 이벤트 내에서만 쓸 수 있는 것인가요?
@override
void initState() {
// TODO: implement initState
super.initState();
ref.read(floorNoProvider.notifier)
.getData();
}
그럴 경우 아래와 같은 에러가 발생하는데요.
Tried to modify a provider while the widget tree was building.
방법이 없을까요?
답변 1
0
안녕하세요!
위젯의 life cycle 메서드 내에서 provider를 사용하는것도 가능합니다.
말씀주신 에러는 initState() 함수에서 provider를 사용해서 생기는 에러가 아닙니다.
위젯의 상태가 dirty 상태인데 clean 상태가 되기전에 provider에서 build() 재실행 가능성이 있는 상태변경을 주셔서 그렇습니다.
제 초급 강의의 Life Cycle 부분을 다시한번 들어보시고 setState() 또는 build() 함수 재실행이 언제 불릴 수 있는지 복습해보세요!
감사합니다!
Isar 마지막 업데이트는 2년전입니다.
0
31
0
FlutterSecureStorage 질문
0
32
0
Dio onError Interceptor 만드는 부분에 질문이 있습니다.
0
80
2
관리자 기능에 대한 질문
0
100
2
part 'restaurant_model.g.dart';
0
92
1
36강. dio 인터셉터에 storage를 전달하는 코드가 이해 안되는데요. 도움 부탁드립니다.
0
56
2
2번 반환 상황 관련 질문
0
61
2
riverpod 3.0
0
140
2
Asset folder??
0
83
2
디자이너와 협업 시 프레임 크기 설정 관련 질문
0
114
2
FutureProvider, StateNotifierProvider 선택 기준
0
70
2
컴포넌트 모델화
0
64
2
쿼리 파라미터
0
84
2
화면 안보임
0
68
2
PaginationListView
0
54
1
강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.
0
103
2
프로토타입이미지
0
62
2
여러 객체를 상태 관리하는 방법에 대한 질문
0
85
2
장바구니 결제하기 응답이 500이 옵니다.
0
105
2
removeFromBasket에서 await patchBasket()을 마지막에 하면 에러나는거 아닌가요?
0
67
2
이 두가지는 완전히 동일한 기능인가요?
0
106
3
내부 코드를 작성하지 않은 CursorPaginationLoading가 어떻게 로딩상태를 갖는지 잘 모르겠습니다...
0
77
2
_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?
0
86
2
코딩 작성 순서 관련 질문
0
88
2





