updateData<D> method
void
updateData<D>(
- D update(
- TransitionContext transCtx,
- D current
- StateKey? forState,
- String? label,
Updates state data of type D when the transition occurs.
class MyStateData {
int value;
}
var state1 = StateKey('s1');
var state2 = StateKey('s2');
var builder = StateTreeBuilder(initialState: state1);
builder.dataState<MyStateData>(
state1,
InitialData(() => MyStateData()),
emptyDataState,
initialChild: InitialChild(state2)
});
builder.state(state2, (b) {
// Update state data in ancestor state
b.onEnter((b) => b.updateData<MyStateData>((_, data) => data..value += 1)));
}, parent: state1);
If more than one ancestor data state share the same state data type of D, forState can be
provided to specify which state data should be updated.
This action can be labeled when formatting a state tree by providing a label.
Implementation
void updateData<D>(
D Function(TransitionContext transCtx, D current) update, {
StateKey? forState,
String? label,
}) {
_handler = _TransitionHandlerDescriptor.updateData<D>(update, forState, label);
}