Try to rerun all dirty scopes before polling any tasks to fix effect ordering

This commit is contained in:
Evan Almloff committed 2024-01-17 08:17:30 -06:00
1 parent 47e46de74f
commit 701093ede5
4 files changed
+90 -28

No files matched your search

+30 -13
View File
@@ -14,22 +14,39 @@ fn app() -> Element {
rsx! {
div {
button { onclick: move |_| counters.write().push(0), "Add counter" }
button { onclick: move |_| { counters.write().pop(); }, "Remove counter" }
button {
onclick: move |_| {
counters.write().pop();
},
"Remove counter"
}
p { "Total: {sum}" }
for (i, counter) in counters.read().iter().enumerate() {
li {
button { onclick: move |_| counters.write()[i] -= 1, "-1" }
input {
value: "{counter}",
oninput: move |e| {
if let Ok(value) = e.value().parse::<usize>() {
counters.write()[i] = value;
}
}
for i in 0..counters.len() {
Child { i, counters }
}
}
}
}
#[component]
fn Child(i: usize, counters: Signal<Vec<usize>>) -> Element {
rsx! {
li {
button { onclick: move |_| counters.write()[i] -= 1, "-1" }
input {
value: "{counters.read()[i]}",
oninput: move |e| {
if let Ok(value) = e.value().parse::<usize>() {
counters.write()[i] = value;
}
button { onclick: move |_| counters.write()[i] += 1, "+1" }
button { onclick: move |_| { counters.write().remove(i); }, "x" }
}
}
button { onclick: move |_| counters.write()[i] += 1, "+1" }
button {
onclick: move |_| {
counters.write().remove(i);
},
"x"
}
}
}