fix: dog-app breed change
This commit is contained in:
1 parent
2073b400df
commit
16d2074fcf
1 file changed
+7
-1
+7
-1
@@ -61,7 +61,7 @@ fn app(cx: Scope) -> Element {
|
|||||||
|
|
||||||
#[inline_props]
|
#[inline_props]
|
||||||
fn Breed(cx: Scope, breed: String) -> Element {
|
fn Breed(cx: Scope, breed: String) -> Element {
|
||||||
#[derive(serde::Deserialize)]
|
#[derive(serde::Deserialize, Debug)]
|
||||||
struct DogApi {
|
struct DogApi {
|
||||||
message: String,
|
message: String,
|
||||||
}
|
}
|
||||||
@@ -72,6 +72,12 @@ fn Breed(cx: Scope, breed: String) -> Element {
|
|||||||
reqwest::get(endpoint).await.unwrap().json::<DogApi>().await
|
reqwest::get(endpoint).await.unwrap().json::<DogApi>().await
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let breed_name = use_state(&cx, || breed.clone());
|
||||||
|
if breed_name.get() != breed {
|
||||||
|
breed_name.set(breed.clone());
|
||||||
|
fut.restart();
|
||||||
|
}
|
||||||
|
|
||||||
cx.render(match fut.value() {
|
cx.render(match fut.value() {
|
||||||
Some(Ok(resp)) => rsx! {
|
Some(Ok(resp)) => rsx! {
|
||||||
button {
|
button {
|
||||||
|
|||||||
Reference in new issue
Block a user