Fix hydration race condition (#3240)

* Fix mount_to_root

* Remove WebsysDom.mount
This commit is contained in:
Ryo Hirayama authored and GitHub committed 2024-11-26 18:43:02 +01:00
1 parent 3af7d34ef3
commit e1457744f0
3 files changed
-10

No files matched your search

@@ -44,9 +44,6 @@ mod js {
#[extends(BaseInterpreter)] #[extends(BaseInterpreter)]
pub struct Interpreter; pub struct Interpreter;
fn mount_to_root() {
"{this.appendChildren(this.root, this.stack.length-1);}"
}
fn push_root(root: u32) { fn push_root(root: u32) {
"{this.pushRoot(this.nodes[$root$]);}" "{this.pushRoot(this.nodes[$root$]);}"
} }
-4
View File
@@ -134,10 +134,6 @@ impl WebsysDom {
suspense_hydration_ids: Default::default(), suspense_hydration_ids: Default::default(),
} }
} }
pub fn mount(&mut self) {
self.interpreter.mount_to_root();
}
} }
fn walk_event_for_id(event: &web_sys::Event) -> Option<(ElementId, web_sys::Element)> { fn walk_event_for_id(event: &web_sys::Event) -> Option<(ElementId, web_sys::Element)> {
-3
View File
@@ -121,9 +121,6 @@ pub async fn run(mut virtual_dom: VirtualDom, web_config: Config) -> ! {
websys_dom.flush_edits(); websys_dom.flush_edits();
} }
// the mutations come back with nothing - we need to actually mount them
websys_dom.mount();
loop { loop {
// if virtual dom has nothing, wait for it to have something before requesting idle time // if virtual dom has nothing, wait for it to have something before requesting idle time
// if there is work then this future resolves immediately. // if there is work then this future resolves immediately.