fix: Update use_resource docs (#2303)

* fix: Update `use_resource` docs

* Fix use_recourse docs; match ref instead of deref because WeatherLocation isn't copy

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
This commit is contained in:
Marc EspinandEvan Almloff authored and GitHub committed 2024-04-15 08:28:12 -05:00
1 parent 05b662ee2d
commit b6d3da2b31
1 file changed
+6 -4
+6 -4
View File
@@ -26,14 +26,16 @@ use std::{cell::Cell, future::Future, rc::Rc};
/// # Ok("Sunny".to_string()) /// # Ok("Sunny".to_string())
/// # } /// # }
/// # #[component] /// # #[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 { /// fn app() -> Element {
/// let country = use_signal(|| WeatherLocation { /// let country = use_signal(|| WeatherLocation {
/// city: "Berlin".to_string(), /// city: "Berlin".to_string(),
/// country: "Germany".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()`), /// // 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. /// // 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 }); /// let current_weather = use_resource(move || async move { get_weather(&country()).await });
@@ -43,7 +45,7 @@ use std::{cell::Cell, future::Future, rc::Rc};
/// // conditionally render elements based off if it's future /// // conditionally render elements based off if it's future
/// // finished (Some(Ok(_)), errored Some(Err(_)), /// // finished (Some(Ok(_)), errored Some(Err(_)),
/// // or is still running (None) /// // or is still running (None)
/// match current_weather.value() { /// match &*current_weather.read() {
/// Some(Ok(weather)) => rsx! { WeatherElement { weather } }, /// Some(Ok(weather)) => rsx! { WeatherElement { weather } },
/// Some(Err(e)) => rsx! { p { "Loading weather failed, {e}" } }, /// Some(Err(e)) => rsx! { p { "Loading weather failed, {e}" } },
/// None => rsx! { p { "Loading..." } } /// None => rsx! { p { "Loading..." } }