[flutter] Redux Store의 상태를 변경하는 방법은 무엇인가요?

Redux에서 액션은 dispatch 함수를 호출하여 디스패치됩니다. 액션은 일반적으로 액션 타입과 액션의 추가적인 데이터를 가지고 있습니다. 액션 타입은 액션을 식별하기 위한 문자열 상수이며, 액션의 종류에 따라 다른 동작을 수행할 수 있습니다.

액션을 디스패치하기 위해 Redux에서 제공하는 store.dispatch 메소드를 사용합니다. 이 메소드는 액션을 전달하고, 스토어의 리듀서(reducer) 함수를 호출하여 상태를 업데이트합니다. 리듀서 함수는 이전 상태와 액션을 이용하여 새로운 상태를 계산하고 반환합니다.

다음은 Redux Store의 상태를 변경하는 예제 코드입니다:

import 'package:redux/redux.dart';

// 액션 타입 정의
enum CounterAction { increment, decrement }

// 리듀서 함수
int counterReducer(int state, dynamic action) {
  if (action == CounterAction.increment) {
    return state + 1;
  } else if (action == CounterAction.decrement) {
    return state - 1;
  }
  return state;
}

void main() {
  // 초깃값 설정
  final store = Store<int>(counterReducer, initialState: 0);

  // 디스패치 액션
  store.dispatch(CounterAction.increment);
  print(store.state); // 출력: 1

  store.dispatch(CounterAction.decrement);
  print(store.state); // 출력: 0
}

위의 코드에서는 CounterAction이라는 액션 타입을 정의하고, counterReducer라는 리듀서 함수를 구현했습니다. store.dispatch를 사용하여 액션을 디스패치하고, store.state를 통해 스토어의 현재 상태에 접근할 수 있습니다.

Redux는 상태 관리에 유용한 패턴을 제공합니다. 자세한 내용은 Redux 공식 문서를 참조하시기 바랍니다: Redux 공식 문서