Skip to content
New issue

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

Replacing elements inside a portal causes a panic #3017

Closed
1 of 3 tasks
kawadakk opened this issue Dec 5, 2022 · 0 comments · Fixed by #3020
Closed
1 of 3 tasks

Replacing elements inside a portal causes a panic #3017

kawadakk opened this issue Dec 5, 2022 · 0 comments · Fixed by #3020
Labels

Comments

@kawadakk
Copy link
Contributor

kawadakk commented Dec 5, 2022

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:

  1. Replace yew/examples/portals/src/main.rs with the following code:
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();
}
  1. trunk serve
  2. Click "Click me!" on browser with developer tools open
  3. Observe a panic occurring
Console logs
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 />.

Environment:

  • Yew version: yew-v0.20.0
  • Rust version: rustc 1.67.0-nightly (77e57db38 2022-10-30)
  • Build tool, if relevant: trunk
  • Browser and version, if relevant: Firefox 107.0.1

Questionnaire

  • I'm interested in fixing this myself but don't know 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant