newPrefix method
Generates a unique prefix for zone IDs.
Use this to prevent ID collisions when the same component type is used multiple times.
Example
class MyListModel extends Model {
final String zonePrefix = zone.newPrefix();
@override
String view() {
return items.indexed.map((e) {
final (i, item) = e;
return zone.mark('${zonePrefix}item_$i', item.render());
}).join('\n');
}
@override
(Model, Cmd?) update(Msg msg) {
if (msg is MouseMsg) {
for (var i = 0; i < items.length; i++) {
if (zone.get('${zonePrefix}item_$i')?.inBounds(msg) ?? false) {
return (selectItem(i), null);
}
}
}
return (this, null);
}
}
Implementation
String newPrefix() {
return 'zone_${++_prefixCounter}__';
}