瀏覽代碼

Fix eval provider

Jonathan Kelley 1 年之前
父節點
當前提交
729bfa3be1
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      packages/desktop/src/webview.rs

+ 6 - 2
packages/desktop/src/webview.rs

@@ -9,6 +9,7 @@ use crate::{
     Config, DesktopContext, DesktopService,
 };
 use dioxus_core::VirtualDom;
+use dioxus_html::prelude::EvalProvider;
 use futures_util::{pin_mut, FutureExt};
 use std::{rc::Rc, task::Waker};
 use wry::{RequestAsyncResponder, WebContext, WebViewBuilder};
@@ -151,8 +152,11 @@ impl WebviewInstance {
         dom.base_scope().provide_context(desktop_context.clone());
 
         // Also set up its eval provider
-        dom.base_scope()
-            .provide_context(Rc::new(DesktopEvalProvider::new(desktop_context.clone())));
+        // It's important that we provide as dyn EvalProvider - using the concrete type has
+        // a different TypeId.
+        let provider: Rc<dyn EvalProvider> =
+            Rc::new(DesktopEvalProvider::new(desktop_context.clone()));
+        dom.base_scope().provide_context(provider);
 
         WebviewInstance {
             waker: tao_waker(shared.proxy.clone(), desktop_context.window.id()),