| name | asyncredux-sync-actions |
| description | Creates AsyncRedux (Flutter) synchronous actions that update state immediately by implementing reduce() to return a new state. |
AsyncRedux Sync Actions
Basic Sync Action Structure
A synchronous action returns AppState? from its reduce() method. The action completes
immediately and state updates right away.
class Increment extends ReduxAction<AppState> {
@override
AppState? reduce() => state.copy(counter: state.counter + 1);
}
Key Components
Extending ReduxAction
Every action extends ReduxAction<AppState>:
class MyAction extends ReduxAction<AppState> {
@override
AppState? reduce() {
// Return new state
}
}
The state Getter
Inside reduce(), access current state via the state getter:
class ToggleFlag extends ReduxAction<AppState> {
@override
AppState? reduce() => state.copy(flag: !state.flag);
}
Passing Parameters via Constructor
Pass data to actions through constructor fields:
class SetName extends ReduxAction<AppState> {
final String name;
SetName(this.name);
@override
AppState? reduce() => state.copy(name: name);
}
class IncrementBy extends ReduxAction<AppState> {
final int amount;
IncrementBy({required this.amount});
@override
AppState? reduce() => state.copy(counter: state.counter + amount);
}
Modifying Nested State
For nested state objects, create the new nested object first:
class UpdateUserName extends ReduxAction<AppState> {
final String name;
UpdateUserName(this.name);
@override
AppState? reduce() {
var newUser = state.user.copy(name: name);
return state.copy(user: newUser);
}
}