소스 검색

Make VirtualDom constructor take an `impl Fn()` instead of a function pointer (#2583)

* feat: don't use function pointer to allow capturing context

* fix: make virtualdom factory take a function of type ComponentFunction with empty props

* fix: remove redundant generic arg

* fix: bruh

* fix: bruh
Oskar Manhart 11 달 전
부모
커밋
aa1a928b91
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      packages/core/src/virtual_dom.rs

+ 2 - 2
packages/core/src/virtual_dom.rs

@@ -254,7 +254,7 @@ impl VirtualDom {
     /// ```
     ///
     /// Note: the VirtualDom is not progressed, you must either "run_with_deadline" or use "rebuild" to progress it.
-    pub fn new(app: fn() -> Element) -> Self {
+    pub fn new<F: Fn() -> Element + Clone + 'static>(app: F) -> Self {
         Self::new_with_props(app, ())
     }
 
@@ -313,7 +313,7 @@ impl VirtualDom {
     }
 
     /// Create a new virtualdom and build it immediately
-    pub fn prebuilt(app: fn() -> Element) -> Self {
+    pub fn prebuilt<F: Fn() -> Element + Clone + 'static>(app: F) -> Self {
         let mut dom = Self::new(app);
         dom.rebuild_in_place();
         dom