setHandler<T> method
void
setHandler<T>({
- T? initialData,
- @Deprecated('Use initialData') T? initalData,
- String? path,
- String? target,
- required Handler<
T> handler,
override
Sets a handler for a specific topic. If an EventNode already exists for that topic, it updates the handler. Otherwise, it creates a new EventNode with the handler and initial data.
Implementation
@override
void setHandler<T>({
T? initialData,
@Deprecated('Use initialData') T? initalData,
String? path,
String? target,
required Handler<T> handler,
}) {
_checkNotDisposed();
var data = initialData ?? initalData;
var t = Topic.create<T>(path: path, target: target);
var node = _eventsMap[t];
if (node != null && node is EventNode<T>) {
node.handler = handler;
if (data != null) {
node.lastData = data;
}
} else {
_eventsMap[t] = EventNode<T>(handler: handler, lastData: data);
}
}