allow returning values from use_eval
This commit is contained in:
1 parent
1e99e35572
commit
e863ef29b8
6 files changed
+100
-13
No files matched your search
+14
-1
@@ -1,4 +1,5 @@
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::EvalResult;
|
||||
|
||||
fn main() {
|
||||
dioxus_desktop::launch(app);
|
||||
@@ -7,6 +8,15 @@ fn main() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
let script = use_state(&cx, String::new);
|
||||
let eval = dioxus_desktop::use_eval(&cx);
|
||||
let future: &UseRef<Option<EvalResult>> = use_ref(&cx, || None);
|
||||
if future.read().is_some() {
|
||||
let future_clone = future.clone();
|
||||
cx.spawn(async move {
|
||||
if let Some(fut) = future_clone.with_mut(|o| o.take()) {
|
||||
println!("{:?}", fut.await)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
cx.render(rsx! {
|
||||
div {
|
||||
@@ -16,7 +26,10 @@ fn app(cx: Scope) -> Element {
|
||||
oninput: move |e| script.set(e.value.clone()),
|
||||
}
|
||||
button {
|
||||
onclick: move |_| eval(script),
|
||||
onclick: move |_| {
|
||||
let fut = eval(script);
|
||||
future.set(Some(fut));
|
||||
},
|
||||
"Execute"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user