Skip to content

signal already disposed with select #70

@blset

Description

@blset

singlestage-ui-c51a63433042ff62/70938d2/singlestage/src/reactive.rs:80:52, you tried to access a reactive value which was defined at /git/checkouts/singlestage-ui-c51a63433042ff62/70938d2/singlestage/src/reactive.rs:127:24, but it has already been disposed.

here is why I tried
it bugs after one or two changes of the select

#[component]
pub fn Activite2(path: Option<String>) -> impl IntoView {


   let   sigpath = RwSignal::new(path.unwrap_or_default());
    use crate::server::list_activites2;
    use itertools::Itertools;


    use leptos::html;
    let suggestions = Resource::new(
        ||(),
        move |_|{
        async move {
            list_activites2().await
    }}
    );
 // let select_ref = NodeRef::<html::Select>::new();
    view! {
        <div class="flex flex-col relative">
            <ButtonGroup>
                // <ButtonGroup>
                // <Button
                // size="icon-sm"
                // variant="ghost"
                // on:click=move |_| {
                // if let Some(select) = select_ref.get() {
                // leptos::logging::debug_log!("{:?}", select);
                // select.set_value("");
                // }
                // }
                // >
                // {icon!(icondata::LuBan)}
                // </Button>
                // </ButtonGroup>
                <ButtonGroup>
                    <Select
                        // node_ref=select_ref
                        class="block max-w-[100px]"
                        placeholder="Activité"

                        on:change=move |ev| {
                            submit_form_from_target(&ev);
                        }

                        value=sigpath
                        name="activite_path"
                    >

                        <Transition>
                            {move || {
                                suggestions
                                    .get_untracked()
                                    .and_then(|res| {
                                        let g = res.ok().unwrap_or_default();
                                        Some(
                                            g
                                                .into_iter()
                                                .chunk_by(|t| t.group.clone())
                                                .into_iter()
                                                .map(|(key, gp)| {
                                                    let group: Vec<_> = gp.collect();
                                                    view! {
                                                        <SelectContent label=key>
                                                            <GroupAct group />
                                                        </SelectContent>
                                                    }
                                                })
                                                .collect_view(),
                                        )
                                    })
                            }}

                        </Transition>
                    </Select>
                </ButtonGroup>
            </ButtonGroup>

        </div>
    }
}

#[component]
fn GroupAct(group : Vec<ActiviteForSearch>) -> impl IntoView {

        group
            .into_iter()
            .map(|t|
            view! { <SelectItem value=t.path>{t.titre}</SelectItem> }
            )
            .collect_view()

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions