-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
0.21 -> 0.22 regression: failed to insert node before next sibling NotFoundError #4092
Copy link
Copy link
Open
Labels
Description
Problem
My yew app crashes on a state change after updating from 0.21 to 0.22-0.23. Here is a fully-minimized reproducible example.
Steps To Reproduce
[package]
name = "yew_crash"
version = "0.1.0"
edition = "2021"
[dependencies]
yew = { version = "0.22", features = ["csr"] }
use yew::prelude::*;
#[function_component(Empty)]
fn empty() -> Html {
html! {}
}
#[function_component(App)]
fn app() -> Html {
let toggled = use_state(|| false);
let onclick = {
let toggled = toggled.clone();
Callback::from(move |_: MouseEvent| {
toggled.set(!*toggled);
})
};
html! {
<>
if *toggled {
<span></span>
}
<Empty/>
if !*toggled { <div>{"old"}</div> }
<button {onclick}>{"Toggle"}</button>
</>
}
}
fn main() {
yew::Renderer::<App>::new().render();
}<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Yew App</title>
</head>
<body></body>
</html>trunk serve- Click the button
Expected behavior
0.21 - doesn't crash
Screenshots
0.22-0.23 - crashes
Environment:
- Yew version: [e.g. v0.17,
master] - Rust version: rustc 1.92.0 (ded5c06cf 2025-12-08)
- Target, if relevant: [e.g.
wasm32-unknown-emscripten] - Build tool, if relevant: trunk
- OS, if relevant: [e.g. MacOS]
- Browser and version, if relevant: Chromium (recent)
Questionnaire
- I'm interested in fixing this myself but have no idea where to start
- I would like to fix and I have a solution
- I don't have time to fix this right now, but maybe later
Reactions are currently unavailable