I was previously using version 1.22.0 for deploying my app and the slider button worked fine, in my 2nd tab. Once I deployed it (and since streamlit uses the latest version if not specified), once i used the slider in my 2nd tab, the app reversed back to the 1st tab.
I am currently encountering a similar issue with streamlit version 1.24.0. Wasn’t encountering this issue with versions 1.23.0 or prior.
I have 5 tabs. The tab highlighted in yellow has 5 radio buttons. When I click on the first radio button, the charts relating to that radio button render correctly. When I click on the second radio button, I get redirected to the first tab.
@tilleul@Akbar_Lutfullah I’m trying to reproduce the issue in 1.24.0 and am using this example code
import streamlit as st
tab1, tab2 = st.tabs(["tab1", "tab2"])
with tab1:
st.write("This is tab 1")
st.button("Click me")
with tab2:
st.write("This is tab 2")
st.button("Click me, too")
st.radio("Radio", [1, 2, 3])
But, I am not seeing the issue in 1.24.0. Can you share some code that reproduces the tab switching?
Thanks @blackary, recreated your example code and did not face any issues. Still struggling with my web app though. Attached a gif below add some context. You will note everytime I click on a radio button in the ‘Summary - by site’ tab I get redirected to the ‘Daily Auction Results’ tab. This is odd because as mentioned earlier, up until now I have not experienced this issue with any of the previous Streamlit versions.
The code I am running is very similar to yours i.e. radio buttons within tabs:
st.title("Storage Assets - Commercial")
tab1, tab2, tab3, tab4, tab5 = st.tabs(
["Daily Auction Results", "Overview", "Summary - by site", "Summary - all sites", "Portfolio Benchmark"]
)
with tab1:
select = st.radio(label='Select a site', options=HEIT_SITES, horizontal=True)
date = st.date_input("Select a date")
# code for getting data from external storage, data manipulation and chart creation
with tab3:
select = st.radio(label='Select a site', options=HEL_SITES, horizontal=True)
if select == "Contego":
st.success(f"You selected: {select}")
slider = st.select_slider(
"Select a timeframe", options=["Monthly", "Weekly", "Daily"]
)
# code for getting data from external storage, data manipulation and chart creation
Just done some further testing. Oddly, no matter which widget I click on (slider, radio button etc.) in any of the tabs, I get redirected to tab 1. Not sure why this is the case. Any help would be appreciated, thank you!
Have the same Issues with new version 1.24.1. In my case I used form and submit button inside tabs. Before the version 1.24, it will show some info under the selected tabs, such as ‘Run successfully’. But after updating to 1.24.1, when succeffuly submit forms, it will redirect to the first tab.
@blackary I found out that the culprit, in my case, is a st.spinner() …
Try this simple code:
import streamlit as st
questions = ["...", "This is option One","This is option Two","This is option Three"]
with st.spinner():
print ("Do something that is time-consuming ...")
tab1, tab2 = st.tabs(("Open question", "Examples"))
qsel = tab2.selectbox("Select", options=questions)
question = tab1.text_area("Type something")
button = st.button("Submit")
Select tab 2 (“examples”) and select an item in the dropdown list, the page is reloaded and tab1 is displayed … (you may need to do this more than once … for a reason unknown it looks like the behavior is sometimes not triggered …)
Now remove the st.spinner line and the one with print() and the behavior is back to normal.
In v1.23.1 this was working fine with st.spinner …
It looks like the impact of that change on st.spinner has not been evaluated correctly because in fact, because of that change, EVERY TIME you use a spinner, the whole page is reloaded which is not appealing to the eye (the whole page is rebuild element by element)