We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problem Replacing elements inside a portal may cause a panic or the elements being placed in a wrong position.
Steps To Reproduce Steps to reproduce the behavior:
yew/examples/portals/src/main.rs
use web_sys::Element; use yew::{create_portal, html, Component, Context, Html}; pub struct App { host_element: Element, counter: u32, } pub enum AppMessage { IncreaseCounter, } impl Component for App { type Message = AppMessage; type Properties = (); fn create(_ctx: &Context<Self>) -> Self { let document_head = gloo::utils::document().head().unwrap(); let host_element = gloo::utils::document() .create_element("portal-host") .unwrap(); document_head.append_child(&host_element).unwrap(); Self { host_element, counter: 0, } } fn update(&mut self, _ctx: &Context<Self>, msg: Self::Message) -> bool { match msg { AppMessage::IncreaseCounter => self.counter += 1, } true } fn view(&self, ctx: &Context<Self>) -> Html { let onclick = ctx.link().callback(|_| AppMessage::IncreaseCounter); let title = create_portal( html! { <> if self.counter % 2 == 0 { <content-one /><b /> } else { <content-two /><b /> } </> }, self.host_element.clone(), ); html! { <> {title} <button {onclick}>{"Click me!"}</button> </> } } } fn main() { yew::Renderer::<App>::new().render(); }
trunk serve
failed to insert node before next sibling DOMException: Node.insertBefore: Child to insert before is not a child of this node <body> <b> <content-two>
panicked at 'failed to insert node before next sibling', ...\source\yew\packages\yew\src\dom_bundle\utils.rs:20:17 Stack: getImports/imports.wbg.__wbg_new_abda76e883ba8a5f@http://127.0.0.1:8080/portals-7032c9aa72252d60.js:327:21 console_error_panic_hook::Error::new::h7e29e67ec48c757b@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[6460]:0x18c906 console_error_panic_hook::hook_impl::h2573a79c47fcd7f9@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[741]:0xbbdb0 console_error_panic_hook::hook::h1a9b00bf02c1f170@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[7055]:0x194b78 core::ops::function::Fn::call::h5db84ee878e6d814@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[6064]:0x186762 <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h9752114fecd3f188@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[4772]:0x16e3f3 std::panicking::rust_panic_with_hook::h4d0513af07e1810b@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[108]:0x36dac std::panicking::begin_panic_handler::{{closure}}::h0d9607cd8a9624bc@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[742]:0xbc062 std::sys_common::backtrace::__rust_end_short_backtrace::h9f237434b86b29e4@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[3964]:0x15ae54 rust_begin_unwind@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[3488]:0x14d674 core::panicking::panic_fmt::hc426027ee6c99258@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[3905]:0x159531 yew::dom_bundle::utils::insert_node::{{closure}}::h613545b6be7fd06e@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[138]:0x47c96 core::result::Result<T,E>::unwrap_or_else::hc9bd74213efce85c@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1312]:0xea393 yew::dom_bundle::utils::insert_node::h78b9850f31b092c9@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[740]:0xbbcce yew::dom_bundle::btag::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vtag::VTag>::attach::h891acf934edf4fd5@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[79]:0x19b9e yew::dom_bundle::traits::Reconcilable::replace::h7c1bf6244d95077c@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[456]:0x9912a yew::dom_bundle::btag::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vtag::VTag>::reconcile_node::h1144dd8877157470@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[243]:0x6dfe9 yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile::hb350b893a3cf5551@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[118]:0x3d291 yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile_node::h687e9d1feef93cb1@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1516]:0xf7a90 yew::dom_bundle::blist::NodeWriter::patch::h18dc6ea8941d1e6b@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1213]:0xe3242 yew::dom_bundle::blist::BList::apply_unkeyed::h14eddc88a81cfc7a@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[85]:0x21aef yew::dom_bundle::blist::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vlist::VList>::reconcile::hc6ce064153698fc2@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[345]:0x85d72 yew::dom_bundle::blist::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vlist::VList>::reconcile_node::hcb184bce44ac6557@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[2200]:0x11c77e yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile::hb350b893a3cf5551@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[118]:0x3d63f yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile_node::h687e9d1feef93cb1@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1516]:0xf7a90 yew::dom_bundle::blist::NodeWriter::patch::h18dc6ea8941d1e6b@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1213]:0xe3242 yew::dom_bundle::blist::BList::apply_unkeyed::h14eddc88a81cfc7a@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[85]:0x21aef yew::dom_bundle::blist::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vlist::VList>::reconcile::hc6ce064153698fc2@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[345]:0x85d72 yew::dom_bundle::blist::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vlist::VList>::reconcile_node::hcb184bce44ac6557@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[2200]:0x11c77e yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile::hb350b893a3cf5551@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[118]:0x3d63f yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile_node::h687e9d1feef93cb1@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1516]:0xf7a90 yew::dom_bundle::bportal::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vportal::VPortal>::reconcile::hb0ba76433b1f6089@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[338]:0x84793 yew::dom_bundle::bportal::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vportal::VPortal>::reconcile_node::h119dc686e25a8be3@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[871]:0xc7e9d yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile::hb350b893a3cf5551@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[118]:0x3d729 yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile_node::h687e9d1feef93cb1@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1516]:0xf7a90 yew::dom_bundle::blist::NodeWriter::patch::h18dc6ea8941d1e6b@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1213]:0xe3242 yew::dom_bundle::blist::BList::apply_unkeyed::h14eddc88a81cfc7a@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[85]:0x21aef yew::dom_bundle::blist::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vlist::VList>::reconcile::hc6ce064153698fc2@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[345]:0x85d72 yew::dom_bundle::blist::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vlist::VList>::reconcile_node::hcb184bce44ac6557@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[2200]:0x11c77e yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile::hb350b893a3cf5551@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[118]:0x3d63f yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile_node::h687e9d1feef93cb1@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1516]:0xf7a90 yew::dom_bundle::Bundle::reconcile::hf63235d25a7d7e0f@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1529]:0xf8724 yew::html::component::lifecycle::ComponentState::commit_render::h582a88126aab5b42@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[417]:0x92e32 yew::html::component::lifecycle::ComponentState::render::ha9b56e6a914073b3@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[88]:0x254ae <yew::html::component::lifecycle::RenderRunner as yew::scheduler::Runnable>::run::hd5a9e8c048f08aa7@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1092]:0xd9ec0 yew::scheduler::start_now::scheduler_loop::hff4525009f73185f@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[99]:0x2ff5f yew::scheduler::start_now::{{closure}}::h498845cd2773c1b2@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[841]:0xc542f std::thread::local::LocalKey<T>::try_with::h8912ad7cfca35430@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1676]:0x10122e std::thread::local::LocalKey<T>::with::ha6d76be5273e02bd@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[4599]:0x16a53b yew::scheduler::start_now::h0c55e4172ec74e07@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[8265]:0x19ff62 yew::scheduler::arch::start::{{closure}}::h8d68a336a0e9351a@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[2254]:0x11f00b <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hb8aeb1069fced2d5@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[2283]:0x12052f wasm_bindgen_futures::task::singlethread::Task::run::h44e5b805a628e23a@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[534]:0xa44fe wasm_bindgen_futures::queue::QueueState::run_all::hfd7ae75c7b117480@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[396]:0x8f72c wasm_bindgen_futures::queue::Queue::new::{{closure}}::hde2bd9b118f758a5@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[4203]:0x160ecb <dyn core::ops::function::FnMut<(A,)>+Output = R as wasm_bindgen::closure::WasmClosure>::describe::invoke::hb6852f36d9bbbb4a@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[2107]:0x117dea __wbg_adapter_16@http://127.0.0.1:8080/portals-7032c9aa72252d60.js:204:10 real@http://127.0.0.1:8080/portals-7032c9aa72252d60.js:189:20 promise callback*getImports/imports.wbg.__wbg_then_11f7a54d67b4bfad@http://127.0.0.1:8080/portals-7032c9aa72252d60.js:555:37 js_sys::Promise::then::h6567cde804331dd7@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[4064]:0x15d778 wasm_bindgen_futures::queue::Queue::schedule_task::h5af3151cc3aa28c3@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[910]:0xcb454 wasm_bindgen_futures::task::singlethread::Task::spawn::{{closure}}::h244962e18ed86e82@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[6469]:0x18cb3f std::thread::local::LocalKey<T>::try_with::h49d615fe046392aa@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1412]:0xf0eec std::thread::local::LocalKey<T>::with::h6511164ec46aad3f@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[4205]:0x160f75 wasm_bindgen_futures::task::singlethread::Task::spawn::h17583f6bebaefbb1@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[363]:0x896a3 wasm_bindgen_futures::spawn_local::h4b85bc026bbe8e7a@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[3073]:0x13faec yew::scheduler::arch::start::h098cab4910c3b370@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[3229]:0x145169 yew::html::component::scope::feat_csr_ssr::<impl yew::html::component::scope::Scope<COMP>>::schedule_update::ha093f3cf506e0647@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[3571]:0x14fd29 yew::html::component::scope::feat_csr_ssr::<impl yew::html::component::scope::Scope<COMP>>::arch_send_message::h216128ccd3c2c212@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[3678]:0x152f99 yew::html::component::scope::Scope<COMP>::send_message::hddb758eb1e84046c@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[6923]:0x193094 yew::html::component::scope::Scope<COMP>::callback::{{closure}}::h2ee6e0ca760cbcfb@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[5198]:0x17705e yew::callback::Callback<IN,OUT>::emit::ha1e99ff3817fbcd3@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[2551]:0x12bf88 <yew::html::listener::events::onclick::Wrapper as yew::virtual_dom::listeners::Listener>::handle::h554d9cfbb748e818@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[5975]:0x184fe1 yew::dom_bundle::btag::listeners::Registry::get_handler::{{closure}}::hc85c8cb78972d623@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[548]:0xa6275 yew::dom_bundle::subtree_root::SubtreeData::handle::{{closure}}::haf7c3412c94d1b19@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[522]:0xa2b9e yew::dom_bundle::subtree_root::SubtreeData::handle::hc4b06a74fecb0795@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[224]:0x6829b yew::dom_bundle::subtree_root::SubtreeData::add_listener::{{closure}}::h984c82282e884197@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[2712]:0x13278d <dyn core::ops::function::FnMut<(&A,)>+Output = R as wasm_bindgen::closure::WasmClosure>::describe::invoke::h4f830d8c8b2b0db5@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1545]:0xf96d8 __wbg_adapter_19@http://127.0.0.1:8080/portals-7032c9aa72252d60.js:216:14 real@http://127.0.0.1:8080/portals-7032c9aa72252d60.js:189:20 EventListener.handleEvent*getImports/imports.wbg.__wbg_addEventListener_1fc744729ac6dc27/<@http://127.0.0.1:8080/portals-7032c9aa72252d60.js:479:25 handleError@http://127.0.0.1:8080/portals-7032c9aa72252d60.js:247:18 getImports/imports.wbg.__wbg_addEventListener_1fc744729ac6dc27@http://127.0.0.1:8080/portals-7032c9aa72252d60.js:478:79 web_sys::features::gen_EventTarget::EventTarget::add_event_listener_with_callback_and_add_event_listener_options::hae85210b933f0ff7@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[878]:0xc8858 gloo_events::EventListener::raw_new::h20f9e67fc2778258@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[557]:0xa733a gloo_events::EventListener::new_with_options::hcfb4ba975181285b@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[428]:0x94bf4 yew::dom_bundle::subtree_root::HostHandlers::add_listener::hfc58fd1b1f680251@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[527]:0xa3617 yew::dom_bundle::subtree_root::SubtreeData::add_listener::he7ef9c4bd80fffdf@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[569]:0xa8cd6 yew::dom_bundle::subtree_root::AppData::ensure_handled::{{closure}}::hedf1de4437b83121@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[604]:0xad006 hashbrown::set::HashSet<T,S,A>::retain::{{closure}}::hbb5c228197bf298c@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[4037]:0x15cc7f hashbrown::map::HashMap<K,V,S,A>::retain::h6a7beb8ed9e19030@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[512]:0xa1656 hashbrown::set::HashSet<T,S,A>::retain::h19f95dd49ebfc2ae@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[4558]:0x16969e std::collections::hash::set::HashSet<T,S>::retain::he1e1cee4e8e26569@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[6459]:0x18c8db yew::dom_bundle::subtree_root::AppData::ensure_handled::h7040a7bd0b2d7c54@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[3090]:0x140494 yew::dom_bundle::subtree_root::BSubtree::ensure_handled::h2dc04f7d78a85089@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1642]:0xff315 yew::dom_bundle::btag::listeners::Registry::register::h377e055c2af4be90@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[264]:0x73648 yew::dom_bundle::btag::listeners::ListenerRegistration::register::{{closure}}::he5e2a166124d45f3@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[3815]:0x156db9 yew::dom_bundle::subtree_root::BSubtree::with_listener_registry::h0072be642bc8b3d9@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1297]:0xe92f8 yew::dom_bundle::btag::listeners::ListenerRegistration::register::hf22e084e6f944748@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[2605]:0x12e2ab yew::dom_bundle::btag::listeners::<impl yew::dom_bundle::btag::Apply for yew::virtual_dom::listeners::Listeners>::apply::hc3550b7080694716@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1515]:0xf7953 yew::dom_bundle::btag::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vtag::VTag>::attach::h891acf934edf4fd5@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[79]:0x19d6c yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::attach::hd6bda3178ec11109@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[74]:0x11ff6 yew::dom_bundle::blist::NodeWriter::add::hc4b0435b167b1997@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[267]:0x740ae yew::dom_bundle::blist::BList::apply_unkeyed::h14eddc88a81cfc7a@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[85]:0x21f31 yew::dom_bundle::blist::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vlist::VList>::reconcile::hc6ce064153698fc2@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[345]:0x85d72 yew::dom_bundle::blist::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vlist::VList>::reconcile_node::hcb184bce44ac6557@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[2200]:0x11c77e yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile::hb350b893a3cf5551@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[118]:0x3d63f yew::dom_bundle::bnode::<impl yew::dom_bundle::traits::Reconcilable for yew::virtual_dom::vnode::VNode>::reconcile_node::h687e9d1feef93cb1@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1516]:0xf7a90 yew::dom_bundle::Bundle::reconcile::hf63235d25a7d7e0f@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[1529]:0xf8724 yew::html::component::lifecycle::ComponentState::commit_render::h582a88126aab5b42@http://127.0.0.1:8080/portals-7032c9aa72252d60_bg.wasm:wasm-function[417]:0x92e32
Expected behavior The contents of html > head > portal-host should alternate between <content-one /><b /> and <content-two /><b />.
html > head > portal-host
<content-one /><b />
<content-two /><b />
Environment:
yew-v0.20.0
rustc 1.67.0-nightly (77e57db38 2022-10-30)
trunk
Questionnaire
The text was updated successfully, but these errors were encountered:
Successfully merging a pull request may close this issue.
Problem
Replacing elements inside a portal may cause a panic or the elements being placed in a wrong position.
Steps To Reproduce
Steps to reproduce the behavior:
yew/examples/portals/src/main.rs
with the following code:trunk serve
Console logs
Expected behavior
The contents of
html > head > portal-host
should alternate between<content-one /><b />
and<content-two /><b />
.Environment:
yew-v0.20.0
rustc 1.67.0-nightly (77e57db38 2022-10-30)
trunk
Questionnaire
The text was updated successfully, but these errors were encountered: