소스 검색

Fix eventhandler optional (#2119)

Jonathan Kelley 1 년 전
부모
커밋
44e997f7df
2개의 변경된 파일13개의 추가작업 그리고 3개의 파일을 삭제
  1. 2 3
      examples/simple_router.rs
  2. 11 0
      packages/core/src/properties.rs

+ 2 - 3
examples/simple_router.rs

@@ -24,9 +24,7 @@ enum Route {
 
 #[component]
 fn Homepage() -> Element {
-    rsx! {
-        h1 { "Welcome home" }
-    }
+    rsx! { h1 { "Welcome home" } }
 }
 
 #[component]
@@ -52,6 +50,7 @@ fn Nav() -> Element {
                     to: Route::Blog {
                         id: "Brownies".to_string(),
                     },
+                    onclick: move |_| { println!("Clicked on Brownies") },
                     "Learn Brownies"
                 }
             }

+ 11 - 0
packages/core/src/properties.rs

@@ -170,6 +170,17 @@ impl<'a> SuperFrom<Arguments<'a>, OptionArgumentsFromMarker> for Option<String>
     }
 }
 
+#[doc(hidden)]
+pub struct OptionHandlerMarker;
+
+impl<G: 'static, F: FnMut(G) + 'static> SuperFrom<F, OptionHandlerMarker>
+    for Option<EventHandler<G>>
+{
+    fn super_from(input: F) -> Self {
+        Some(EventHandler::new(input))
+    }
+}
+
 #[test]
 #[allow(unused)]
 fn from_props_compiles() {