Toggle dynamic label change

import streamlit as st

# Initialize session state for 'side' and 'side_session' if they do not exist
if 'side' not in st.session_state:
    st.session_state.side = False  # Default state for the toggle button

# Display the current state before toggle
st.text(f"Before toggle: {st.session_state.side}")

# Toggle button to switch between "Hed Yes" and "Hed No"
hed_type = st.toggle(
    label="Yes" if not st.session_state.side else "No",
    key='side'
)

# Display the state after toggle
st.text(f"After toggle: {st.session_state.side}")

I have tried to change the ‘label’ dynamically, but it is not working properly. Can someone help with this? Thank you.

That turns out to be a little bit tricky, but this works:

import streamlit as st

if "is_checked" not in st.session_state:
    st.session_state.is_checked = False


def on_change():
    st.session_state.is_checked = not st.session_state.is_checked


st.toggle(
    label="Yes" if st.session_state.is_checked else "No",
    value=st.session_state.is_checked,
    on_change=on_change,
)
2 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.