[Flutter] store 사용하기

제리·2021년 12월 29일
0

1

(pub.yaml) 패키지 추가

dependencies:
  flutter:
    sdk: flutter
  provider:

2

(main.dart) 임포트 ㄱ

import 'package:provider/provider.dart';

3

스토어클래스 만드셈

class Store1 extends ChangeNotifier {
  var name = 'john kim';
}

4

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()
  ),
)

5

state 불러오는법 : watch

context.watch<₩Store1>().name
이렇게 불러올수있음

AppBar(title: Text(context.watch<Store1>().name),),

6

state 변경하는법

  1. 함수로 변경코드를 작성
class Store1 extends ChangeNotifier {
  var name = 'john kim';
  changeName(){
    name = 'john park';
    notifyListeners(); // 재렌더링시켜줌
  }
}
  1. 사용하고싶은곳에서 context.read< >().함수명() 으로 쓰면됨
context.read<Store1>().changeName();
profile
iOS 준비중

0개의 댓글