diff --git a/core/lib/Drupal/Core/Field/FieldItemBase.php b/core/lib/Drupal/Core/Field/FieldItemBase.php
index db8601c..d3b4357 100644
--- a/core/lib/Drupal/Core/Field/FieldItemBase.php
+++ b/core/lib/Drupal/Core/Field/FieldItemBase.php
@@ -198,15 +198,12 @@ public function __unset($name) {
    * Overrides \Drupal\Core\TypedData\Map::onChange().
    */
   public function onChange($property_name) {
-    // Notify the parent of changes.
-    if (isset($this->parent)) {
-      $this->parent->onChange($this->name);
-    }
     // Remove the plain value, such that any further __get() calls go via the
     // updated property object.
     if (isset($this->properties[$property_name])) {
       unset($this->values[$property_name]);
     }
+    parent::onChange($property_name);
   }
 
   /**
diff --git a/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeItem.php b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeItem.php
index f63ffd6..d24f1c2 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeItem.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeItem.php
@@ -132,12 +132,11 @@ public function isEmpty() {
    * {@inheritdoc}
    */
   public function onChange($property_name) {
-    parent::onChange($property_name);
-
     // Enforce that the computed date is recalculated.
     if ($property_name == 'value') {
       $this->date = NULL;
     }
+    parent::onChange($property_name);
   }
 
 }
diff --git a/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php b/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php
index e08f951..3d81f31 100644
--- a/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php
+++ b/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php
@@ -60,11 +60,6 @@ public function isEmpty() {
    * {@inheritdoc}
    */
   public function onChange($property_name) {
-    // Notify the parent of changes.
-    if (isset($this->parent)) {
-      $this->parent->onChange($this->name);
-    }
-
     // Unset processed properties that are affected by the change.
     foreach ($this->definition->getPropertyDefinitions() as $property => $definition) {
       if ($definition->getClass() == '\Drupal\text\TextProcessed') {
@@ -73,6 +68,7 @@ public function onChange($property_name) {
         }
       }
     }
+    parent::onChange($property_name);
   }
 
   /**
