Summary
I am having an issue where the variable that is set on one page with a number input box seems to feed into other pages of the multipage app, even though the same variable is re-defined on each page with a set default value.
Steps to reproduce
Code snippet (test page 1):
import streamlit as st
st.set_page_config(page_title="TEST PAGE 1", page_icon="π")
HOUSE_NUMBER = st.number_input(
"Number of houses",
value=36,
min_value=1,
max_value=100,
)
st.metric("Number of houses", HOUSE_NUMBER)
Code snippet (test page 2 - same as test page 1):
# page config to stay at top of page
import streamlit as st
st.set_page_config(page_title="TEST PAGE 2", page_icon="π")
HOUSE_NUMBER = st.number_input(
"Number of houses",
value=36,
min_value=1,
max_value=100,
)
st.metric("Number of houses", HOUSE_NUMBER)
Then when I run the app for the first time - the value is correctly set to the default on the first page. Then if I change the value from the default of 36 to 10, it updates on that page correctly (see figure1 below).
However the issue arises then when I switch to the second test page, the number input box has the correct value, but the metric printing out the value of the variable HOUSE_NUMBER has saved the value from the first page. see figure 2 below.
FIGURE1 - changing the number on test page one
FIGURE2 - number from first page has fed into the second test page?
Expected behavior:
I would expect the second page to reset the value back to the default.
Actual behavior:
The default value shows correctly in the number input box but seems not to be when you display the value.
Debug info
- Streamlit version: 1.18.1
- Python version: 3.8.5
- pip
- Browser version: both local host and heroku deployment
Requirements file
numpy==1.23
streamlit==1.18.1
pyarrow==10.0.1
snowflake-connector-python==3.0.0
pandas==1.5.2
numba==0.56.4
plotly==5.12.0
Additional information
I have tried clearing the session state but it seems to already be empty.