(pub.yaml) 패키지 추가
dependencies:
flutter:
sdk: flutter
provider:
(main.dart) 임포트 ㄱ
import 'package:provider/provider.dart';
스토어클래스 만드셈
class Store1 extends ChangeNotifier {
var name = 'john kim';
}
MatrialApp을 ChangeNotifierProvider()로 감싸고 create: 속성값주셈
ChangeNotifierProvider(
create: (c)=>Store1(),
child: MaterialApp(
theme: style.theme,
home: MyApp()
),
참고) store 여러개 쓰고싶으면 MultiProvider()
MultiProvider(
providers: [
ChangeNotifierProvider(create: (c)=>Store1(),),
ChangeNotifierProvider(create: (c)=>Store2(),),
],
child: MaterialApp(
theme: style.theme,
home: MyApp()
),
)
state 불러오는법 : watch
context.watch<₩Store1>().name
이렇게 불러올수있음AppBar(title: Text(context.watch<Store1>().name),),
state 변경하는법
- 함수로 변경코드를 작성
class Store1 extends ChangeNotifier { var name = 'john kim'; changeName(){ name = 'john park'; notifyListeners(); // 재렌더링시켜줌 } }
- 사용하고싶은곳에서 context.read< >().함수명() 으로 쓰면됨
context.read<Store1>().changeName();