Преглед изворни кода

Don't expect all components to have a scope in ScopeArena.ensure_drop_safety

Not all components will be mounted when using a Router, so we cannot assume
all components have a scope.
Dave Rolsky пре 3 година
родитељ
комит
9b282d8
1 измењених фајлова са 3 додато и 6 уклоњено
  1. 3 6
      packages/core/src/scopes.rs

+ 3 - 6
packages/core/src/scopes.rs

@@ -198,12 +198,9 @@ impl ScopeArena {
             // run the hooks (which hold an &mut Reference)
             // recursively call ensure_drop_safety on all children
             items.borrowed_props.drain(..).for_each(|comp| {
-                let scope_id = comp
-                    .scope
-                    .get()
-                    .expect("VComponents should be associated with a valid Scope");
-
-                self.ensure_drop_safety(scope_id);
+                if let Some(scope_id) = comp.scope.get() {
+                    self.ensure_drop_safety(scope_id);
+                }
 
                 drop(comp.props.take());
             });