瀏覽代碼

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