bindAction method
Implementation
Dispatcher bindAction(ActionBase action, {CancelToken? cancelToken}) {
if (!action.canDispatch(this)) {
throw IncompatibleException(
'Cannot dispatch this action. The Action is not compatible with this Cubix');
}
var actionData = _data[action.runtimeType];
if (actionData == null) {
_data[action.runtimeType] = actionData = {};
}
final dispatcher = Dispatcher(
cubix: this,
dispatching: dispatchers,
cancelToken: cancelToken ?? CancelToken(),
action: action,
data: actionData,
);
action.onBind(dispatcher);
if (_injected) {
action.inject(resolver);
}
action.onInit();
_dispatchEmitter.emit(action);
onDispatch(action);
return dispatcher;
}