diff --git a/src/Plugin/Field/FieldType/EntityReferenceRevisionsItem.php b/src/Plugin/Field/FieldType/EntityReferenceRevisionsItem.php
index fc1e82a..d8c8bb6 100644
--- a/src/Plugin/Field/FieldType/EntityReferenceRevisionsItem.php
+++ b/src/Plugin/Field/FieldType/EntityReferenceRevisionsItem.php
@@ -39,6 +39,11 @@ use Drupal\entity_reference_revisions\EntityNeedsSaveInterface;
 class EntityReferenceRevisionsItem extends EntityReferenceItem implements OptionsProviderInterface, PreconfiguredFieldUiOptionsInterface {
 
   /**
+   * Reference to the entity pointed to by this field.
+   */
+  protected $entity;
+
+  /**
    * {@inheritdoc}
    */
   public function storageSettingsForm(array &$form, FormStateInterface $form_state, $has_data) {
@@ -211,12 +216,12 @@ class EntityReferenceRevisionsItem extends EntityReferenceItem implements Option
     elseif (isset($this->target_id)) {
       $storage = \Drupal::entityTypeManager()->getStorage($this->getSetting('target_type'));
       // By default always load the default revision, so caches get used.
-      $entity = $storage->load($this->target_id);
-      if ($entity !== NULL && $entity->getRevisionId() != $this->revision_id) {
+      $this->entity = $storage->load($this->target_id);
+      if ($this->entity !== NULL && $this->entity->getRevisionId() != $this->revision_id) {
         // A non-default revision is a referenced, so load this one.
-        $entity = $storage->loadRevision($this->revision_id);
+        $this->entity = $storage->loadRevision($this->revision_id);
       }
-      return $entity;
+      return $this->entity;
     }
   }
 
