From b2607a5b35b1e8e12c62489e94d3d7cd5449c1a4 Mon Sep 17 00:00:00 2001 From: Evan Almloff Date: Tue, 12 Mar 2024 15:15:36 -0500 Subject: [PATCH] Fix temporary reads within rsx --- packages/rsx/src/lib.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/rsx/src/lib.rs b/packages/rsx/src/lib.rs index 3d689dda0..f266aa2d7 100644 --- a/packages/rsx/src/lib.rs +++ b/packages/rsx/src/lib.rs @@ -244,12 +244,16 @@ impl<'a> ToTokens for TemplateRenderer<'a> { attr_paths: &[ #(#attr_paths),* ], }; - dioxus_core::VNode::new( - #key_tokens, - TEMPLATE, - Box::new([ #( #node_printer),* ]), - Box::new([ #(#dyn_attr_printer),* ]), - ) + { + // NOTE: Allocating a temporary is important to make reads within rsx drop before the value is returned + let __vnodes = dioxus_core::VNode::new( + #key_tokens, + TEMPLATE, + Box::new([ #( #node_printer),* ]), + Box::new([ #(#dyn_attr_printer),* ]), + ); + __vnodes + } }); } }