Add lazy contexts to signals

This commit is contained in:
Jonathan Kelley committed 2023-07-14 12:52:49 -07:00
1 parent 645706c7f4
commit 2d8841cf70
5 files changed
+40 -6

No files matched your search

+3
View File
@@ -79,3 +79,6 @@ pub use usecallback::*;
mod usememo;
pub use usememo::*;
mod userootcontext;
pub use userootcontext::*;
+9
View File
@@ -0,0 +1,9 @@
use dioxus_core::ScopeState;
///
pub fn use_root_context<T: 'static + Clone>(cx: &ScopeState, new: impl FnOnce() -> T) -> &T {
cx.use_hook(|| {
cx.consume_context::<T>()
.unwrap_or_else(|| cx.provide_root_context(new()))
})
}