handle keys

This commit is contained in:
Evan Almloff committed 2022-05-27 16:49:32 -05:00
1 parent 94169083f5
commit cef2f52058
2 files changed
+25 -9

No files matched your search

+2 -1
View File
@@ -22,7 +22,7 @@ fn app(cx: Scope) -> Element {
cx.render(rsx! {
div {
width: "100%",
height: "100%",
height: "500px",
onclick: move |_| {
count.modify(|count| *count + 10);
},
@@ -34,6 +34,7 @@ fn app(cx: Scope) -> Element {
height: "50%",
textarea {
width: "90%",
key: "1",
value: {
if rsx_code.get().is_none() {
let rsx_text_index: RsxTextIndex = cx.consume_context().unwrap();
+23 -8
View File
@@ -203,14 +203,29 @@ fn build_node<'a>(
}
let tag = bump.alloc(el.name.to_string());
if let Some((tag, ns)) = element_to_static_str(tag) {
Some(factory.raw_element(
tag,
ns,
listeners,
attributes.as_slice(),
children.as_slice(),
None,
))
match el.key {
None => Some(factory.raw_element(
tag,
ns,
listeners,
attributes.as_slice(),
children.as_slice(),
None,
)),
Some(lit) => {
let ifmt: InterperedIfmt = lit.value().parse().unwrap();
let key = bump.alloc(ifmt.resolve(&ctx.captured));
Some(factory.raw_element(
tag,
ns,
listeners,
attributes.as_slice(),
children.as_slice(),
Some(format_args!("{}", key)),
))
}
}
} else {
None
}