Form submit works not on every click. Here is example:
import streamlit as st
with st.form(key="input_form"):
v = st.session_state.get("v", "")
out = st.text_area(label="input", value=v)
sbutton = st.form_submit_button('Show')
if sbutton:
st.session_state["v"] = out
st.json(st.session_state)
input: 1
result:
{
"v":"1"
"FormSubmitter:input_form-Show":true
}
input: 12
result:
{
"v":"1"
"FormSubmitter:input_form-Show":true
}
in form text == 1
Same problem found in this sample
On even tries - data simply lost