플러터 Provider 패키지
전송 없이 모든 위젯이 state를 직접 가져다쓸 수 있게 만들어주는 패키지
Provider 패키지
사용방법
- state 보관하는 store 필요
class Store1 extends ChangeNotifier {
var name = 'john kim';
}
- store 등록 필요
- store를 사용할 위젯들을 전부 ChangeNotifierProvider()로 감싸면됨. 모든 위젯에 다 사용할 경우 MaterialApp을 감싸면 끝
- create 안에는 Store1를 넣으면 되고 child에 적용할 위젯을 추가
void main() {
runApp(
ChangeNotifierProvider(
create: (c) => Store1(),
child: MaterialApp(
theme: style.theme,
home: MyApp()
)
)
)
}
- store에 있는 state를 사용하고 싶을 때
context.watch<store명>().[사용할 state]
쓰면됨
- state 변경
- Store 클래스 안에다 변경하는 함수를 만들고
context.read<store명>().[변경하는 함수명 호출]
해서 사용 - 변경하는 함수안에
notifyListeners()
함수 추가해주면 재렌더링 진행됨
store가 여러개인경우
- store 클래스는 따로 만들어 두고 등록하는 부분을 Multiprovider로 변경
MultiProvider(
providers: [
ChangeNotifierProvider(create: (c) => Store1()),
ChangeNotifierProvider(create: (c) => Store2()),
],
child: MaterialApp( 어쩌구 )
)
Author And Source
이 문제에 관하여(플러터 Provider 패키지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ein214/플러터-Provider-패키지저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)