I was trying to take some number input from the user but I’m trying to add a reset values button which resets the input back to its original state
Code snippet:
with col1:
# values after the user changes parameters
inp1 = 0.5
inp2 = 10.28
inp3 = 0.5
inp4 = 1.0
min_vug_area = st.number_input("Min Vug Area", value=inp1)
max_vug_area = st.number_input("Max Vug Area", value=inp2)
min_circ_ratio = st.number_input("Min Circ Ratio", value=inp3)
max_circ_ratio = st.number_input("Max Circ Ratio", value=inp4)
Expected behavior:
There should be a reset button in the same column which resets the value back to default i.e. 0.5,10.28,0.5,1.0
Thank you in advance​:two_hearts:
Hey @Abhishek_Mallick 
I’ve added session_state()
elements where needed for this to work:
import streamlit as st
if "reset" not in st.session_state:
st.session_state.reset = False
with st.container():
default_values = {"inp1": 0.5, "inp2": 10.28, "inp3": 0.5, "inp4": 1.0}
inp1 = default_values["inp1"] if st.session_state.reset else st.session_state.get("inp1", default_values["inp1"])
inp2 = default_values["inp2"] if st.session_state.reset else st.session_state.get("inp2", default_values["inp2"])
inp3 = default_values["inp3"] if st.session_state.reset else st.session_state.get("inp3", default_values["inp3"])
inp4 = default_values["inp4"] if st.session_state.reset else st.session_state.get("inp4", default_values["inp4"])
st.session_state.inp1 = st.number_input("Min Vug Area", value=inp1)
st.session_state.inp2 = st.number_input("Max Vug Area", value=inp2)
st.session_state.inp3 = st.number_input("Min Circ Ratio", value=inp3)
st.session_state.inp4 = st.number_input("Max Circ Ratio", value=inp4)
# Reset button
if st.button("Reset values"):
st.session_state.reset = True # Mark reset as True if button is pressed
st.experimental_rerun() # Rerun the script
else:
st.session_state.reset = False # Reset the reset flag
Have a look at this quick gif 

Let me know if you’d need anything else.
Best,
Charly