diff --git a/packages/hooks/src/use_resource.rs b/packages/hooks/src/use_resource.rs index 3af0a0a30..aa19e7aad 100644 --- a/packages/hooks/src/use_resource.rs +++ b/packages/hooks/src/use_resource.rs @@ -26,30 +26,32 @@ use std::{cell::Cell, future::Future, rc::Rc}; /// # Ok("Sunny".to_string()) /// # } /// # #[component] -/// # fn WeatherElement (weather: String ) -> Element { rsx! { p { "The weather is {weather}" } } } +/// # fn WeatherElement(weather: String) -> Element { +/// # rsx! { p { "The weather is {weather}" } } +/// # } /// fn app() -> Element { /// let country = use_signal(|| WeatherLocation { /// city: "Berlin".to_string(), /// country: "Germany".to_string(), -/// coordinates: (52.5244, 13.4105) +/// coordinates: (52.5244, 13.4105), /// }); +/// /// +/// // Because the resource's future subscribes to `country` by reading it (`country.read()`), +/// // every time `country` changes the resource's future will run again and thus provide a new value. +/// let current_weather = use_resource(move || async move { get_weather(&country()).await }); /// -/// // Because the resource's future subscribes to `country` by reading it (`country.read()`), -/// // every time `country` changes the resource's future will run again and thus provide a new value. -/// let current_weather = use_resource(move || async move { get_weather(&country()).await }); -/// -/// rsx! { -/// // the value of the resource can be polled to -/// // conditionally render elements based off if it's future -/// // finished (Some(Ok(_)), errored Some(Err(_)), -/// // or is still running (None) -/// match current_weather.value() { -/// Some(Ok(weather)) => rsx! { WeatherElement { weather } }, -/// Some(Err(e)) => rsx! { p { "Loading weather failed, {e}" } }, -/// None => rsx! { p { "Loading..." } } -/// } -/// } -///} +/// rsx! { +/// // the value of the resource can be polled to +/// // conditionally render elements based off if it's future +/// // finished (Some(Ok(_)), errored Some(Err(_)), +/// // or is still running (None) +/// match &*current_weather.read() { +/// Some(Ok(weather)) => rsx! { WeatherElement { weather } }, +/// Some(Err(e)) => rsx! { p { "Loading weather failed, {e}" } }, +/// None => rsx! { p { "Loading..." } } +/// } +/// } +/// } /// ``` /// /// ## With non-reactive dependencies