wip: usecallback

This commit is contained in:
Jonathan Kelley committed 2022-11-19 13:43:19 -08:00
1 parent 57c10174ec
commit 5253ce6b65
3 files changed
+21 -12

No files matched your search

+10 -8
View File
@@ -1,5 +1,3 @@
use std::rc::Rc;
use dioxus::prelude::*; use dioxus::prelude::*;
fn main() { fn main() {
@@ -7,14 +5,18 @@ fn main() {
} }
fn app(cx: Scope) -> Element { fn app(cx: Scope) -> Element {
let login = use_callback!(cx, || |evt| async { let login = use_callback!(cx, || move |evt: MouseEvent| async move {
// let res = reqwest::get("https://dog.ceo/api/breeds/list/all")
.await
.unwrap()
.text()
.await
.unwrap();
println!("{}, ", res);
}); });
cx.render(rsx! { cx.render(rsx! {
button { button { onclick: login, "Click me!" }
onclick: login,
"Click me!"
}
}) })
} }
+1 -1
View File
@@ -1,5 +1,5 @@
use dioxus::prelude::*; use dioxus::prelude::*;
use std::{collections::HashMap, marker::PhantomData}; use std::collections::HashMap;
fn main() { fn main() {
dioxus_desktop::launch(|cx| { dioxus_desktop::launch(|cx| {
+10 -3
View File
@@ -5,11 +5,18 @@ use std::future::Future;
#[macro_export] #[macro_export]
macro_rules! use_callback { macro_rules! use_callback {
($cx:ident, || || $($rest:tt)*) => { use_callback( $cx, (), |_| $($rest)* ) }; // ($cx:ident, || || $($rest:tt)*) => { use_callback( $cx, (), |_| $($rest)* ) };
($cx:ident, || |$myarg:ident| $($rest:tt)*) => { // ($cx:ident, || || $($rest:tt)*) => { use_callback( $cx, (), |_| $($rest)* ) };
($cx:ident, || $($rest:tt)*) => {
use_callback( use_callback(
$cx, $cx,
|| |$myarg| async {} move || $($rest)*
)
};
($cx:ident, |$($args:tt),* | $($rest:tt)*) => {
use_callback(
$cx,
move || $($rest)*
) )
}; };
} }