canUpdate static method

bool canUpdate(
  1. Component oldComponent,
  2. Component newComponent
)

Whether the newComponent can be used to update an Element that currently has the oldComponent as its configuration.

An element that uses a given component as its configuration can be updated to use another component as its configuration if, and only if, the two components have runtimeType and key properties that are operator==.

If the components have no key (their key is null), then they are considered a match if they have the same type, even if their children are completely different.

Implementation

static bool canUpdate(Component oldComponent, Component newComponent) {
  if (oldComponent.runtimeType != newComponent.runtimeType || oldComponent.key != newComponent.key) {
    return false;
  }
  // If the tag is different, then the components are not compatible.
  if (oldComponent is DomComponent && oldComponent.tag != (newComponent as DomComponent).tag) {
    return false;
  }
  return true;
}