diff --git a/thaw/src/input/mod.rs b/thaw/src/input/mod.rs index 5ab5a4f..0403f39 100644 --- a/thaw/src/input/mod.rs +++ b/thaw/src/input/mod.rs @@ -140,6 +140,16 @@ pub fn Input( } }; + let input_value: Option<String>; + #[cfg(feature = "ssr")] + { + input_value = Some(value.get_untracked()); + } + #[cfg(not(feature = "ssr"))] + { + input_value = None; + } + #[cfg(debug_assertions)] { const INNER_ATTRS: [&str; 4] = ["type", "class", "disabled", "placeholder"]; @@ -173,6 +183,7 @@ pub fn Input( <input {..attrs} type=move || variant.get().as_str() + value=input_value prop:value=move || { value_trigger.track(); value.get() diff --git a/thaw/src/input_number/mod.rs b/thaw/src/input_number/mod.rs index 9cf81c5..8999530 100644 --- a/thaw/src/input_number/mod.rs +++ b/thaw/src/input_number/mod.rs @@ -23,7 +23,7 @@ where T: Default + Clone + FromStr + ToString + 'static, { let input_value = create_rw_signal(String::default()); - create_effect(move |prev| { + Effect::new_isomorphic(move |prev| { value.with(|value| { let value = value.to_string(); if let Some(prev) = prev {