mirror of
https://github.com/DioxusLabs/dioxus
synced 2024-11-23 04:33:06 +00:00
fix: proprogation of root context
This commit is contained in:
parent
70f2ef43db
commit
c8d528b3b1
1 changed files with 11 additions and 8 deletions
|
@ -702,19 +702,22 @@ impl ScopeState {
|
|||
while let Some(parent) = search_parent.take() {
|
||||
let parent = unsafe { &*parent };
|
||||
|
||||
if parent
|
||||
.shared_contexts
|
||||
.borrow_mut()
|
||||
.insert(TypeId::of::<T>(), value.clone())
|
||||
.is_some()
|
||||
{
|
||||
log::warn!("Context already provided to parent scope - replacing it");
|
||||
if parent.scope_id() == ScopeId(0) {
|
||||
let exists = parent
|
||||
.shared_contexts
|
||||
.borrow_mut()
|
||||
.insert(TypeId::of::<T>(), value.clone());
|
||||
|
||||
if exists.is_some() {
|
||||
log::warn!("Context already provided to parent scope - replacing it");
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
search_parent = parent.parent_scope;
|
||||
}
|
||||
|
||||
value
|
||||
unreachable!("all apps have a root scope")
|
||||
}
|
||||
|
||||
/// Try to retrieve a SharedState with type T from the any parent Scope.
|
||||
|
|
Loading…
Reference in a new issue