[flutter] Redux Store의 상태 변경을 구독하는 방법은 무엇인가요?
예를 들어, 다음과 같이 Redux Store를 생성하고 상태 변경을 구독하는 코드를 작성할 수 있습니다:
import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
// 상태 모델 정의
class AppState {
final int counter;
AppState(this.counter);
}
// 액션 정의
enum CounterAction { increment, decrement }
// 리듀서 정의
AppState counterReducer(AppState state, dynamic action) {
if (action == CounterAction.increment) {
return AppState(state.counter + 1);
} else if (action == CounterAction.decrement) {
return AppState(state.counter - 1);
}
return state;
}
void main() {
// Redux Store 생성
final store = Store<AppState>(counterReducer, initialState: AppState(0));
// 상태 변경을 구독하는 코드
store.subscribe(() {
final currentState = store.state;
print('현재 카운터 값: ${currentState.counter}');
});
// 액션 디스패치
store.dispatch(CounterAction.increment);
store.dispatch(CounterAction.decrement);
}
위의 코드에서 store.subscribe
메서드는 상태 변경이 있을 때마다 호출됩니다. 이 메서드 내에서는 새로운 상태를 얻고 원하는 작업을 수행할 수 있습니다. 위의 예시에서는 간단하게 새로운 상태의 카운터 값을 출력하도록 했습니다.
참고로, Flutter에서 Redux Store를 사용할 때는 flutter_redux
패키지를 사용하는 것이 좋습니다. 해당 패키지는 Redux와 Flutter를 통합하기 위한 유용한 기능들을 제공합니다.
자세한 내용은 flutter_redux 패키지 문서를 참고하시기 바랍니다.