wip: usecallback

This commit is contained in:
Jonathan Kelley 2022-11-19 13:43:19 -08:00
parent 57c10174ec
commit 5253ce6b65
3 changed files with 21 additions and 12 deletions

View file

@ -1,5 +1,3 @@
use std::rc::Rc;
use dioxus::prelude::*;
fn main() {
@ -7,14 +5,18 @@ fn main() {
}
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! {
button {
onclick: login,
"Click me!"
}
button { onclick: login, "Click me!" }
})
}

View file

@ -1,5 +1,5 @@
use dioxus::prelude::*;
use std::{collections::HashMap, marker::PhantomData};
use std::collections::HashMap;
fn main() {
dioxus_desktop::launch(|cx| {

View file

@ -5,11 +5,18 @@ use std::future::Future;
#[macro_export]
macro_rules! use_callback {
($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( $cx, (), |_| $($rest)* ) };
($cx:ident, || $($rest:tt)*) => {
use_callback(
$cx,
|| |$myarg| async {}
move || $($rest)*
)
};
($cx:ident, |$($args:tt),* | $($rest:tt)*) => {
use_callback(
$cx,
move || $($rest)*
)
};
}