Hello! I have two buttons in my app: Add Step and Remove Step. These buttons are supposed to remove or add text_input and selectbox by changing the session state, but I need to double click to do the action.
Code snippet:
# Use st.session_state to store the steps
if 'steps' not in st.session_state:
st.session_state.steps = [] # Initialize with an empty step
for i, step in enumerate(st.session_state.steps):
col1, col2 = st.columns(2)
with col1:
st.text_input(label=f"Step {i + 1}", value=step, key=f"text_step_{i}", placeholder="Input here.")
with col2:
st.selectbox(
label=f"Select for Step {i + 1}",
options=["Text", "Scenario"], # Replace with your own options
key=f"select_step_{i}"
)
if len(st.session_state.steps) == 0:
st.subheader("Add step for scenario")
st.divider()
add_step_button, remove_step_button = st.columns(2)
with add_step_button:
with stylable_container(
"add_step",
css_styles="""
button {
background-color: #3d679f;
color: white;
border-color: #E8E8E8;
}""",
):
if st.button("Add Step", key='add_button'):
st.session_state.steps.append("")
with remove_step_button:
with stylable_container(
"remove_step",
css_styles="""
button {
background-color: red;
color: white;
border-color: #E8E8E8;
margin-left: -240px;
}""",
):
if st.button("Remove Step", key='remove_button'):
remove_step(len(st.session_state.steps) - 1)
my function remove_step:
def remove_step(index):
if len(st.session_state.steps) > 1:
st.session_state.steps.pop(index)
else:
st.session_state.steps.clear()
Expected behavior:
I’m facing an issue where I have to click a button twice for the action to be triggered. It’s not necessary to click the same button twice; for example, I could click the “Add step” button once, nothing happens, then I click the “Remove step” button, and only then do adding the step
its working not correctly