From 57e05dcf3a7d6ba4e7bc0624eddfbb39f77d65d6 Mon Sep 17 00:00:00 2001 From: koti Date: Mon, 1 Apr 2024 18:50:32 +0530 Subject: [PATCH] Fix for Counters sample code in README (#2209) * Fix for Counters sample code in README.md Fix for Counters sample code in README. It was throwing syntax errors. * Update README.md Fix * slightly simplify counter example with the writable vec extension trait --------- Co-authored-by: Evan Almloff --- README.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 57fcf308e..90986d2c0 100644 --- a/README.md +++ b/README.md @@ -254,19 +254,19 @@ Leptos is a library for building fullstack web-apps, similar to SolidJS and Soli ```rust fn Counters() -> Element { - let mut counters = use_signal(|| vec![0; initial_length]); + let mut counters = use_signal(|| vec![0; 10]); - rsx! { - button { onclick: move |_| counters.push(counters.len()); "Add Counter" } - ul { - for idx in 0..counters.len() { - li { - button { onclick: move |_| counters[idx] += 1; "{counters[idx]}" } - button { onclick: move |_| { counters.write().remove(idx); } "Remove" } + rsx! { + button { onclick: move |_| counters.push(counters.len()), "Add Counter" } + ul { + for idx in 0..counters.len() { + li { + button { onclick: move |_| counters.write()[idx] += 1, "{counters.index(idx)}" } + button { onclick: move |_| { counters.remove(idx); }, "Remove" } + } + } } - } } - } } ``` @@ -293,6 +293,7 @@ fn Counters() -> Element { } +} ``` - **`Copy` state**: Dioxus 0.1 to 0.4 relied on lifetimes to relax the rules of Rust's borrow checker. This worked well for event handlers, but struggled around async. In Dioxus 0.5, we've switched to a [`Copy` state model](https://crates.io/crates/generational-box) borrowed from Leptos.