#7862·streamlit

在发生阻塞时,输入不会保存在 `st.session_state` 中

作者: Wattyyy创建于 2023年12月20日更新于 2026年9月16日
标签type:bugstatus:confirmedpriority:P3feature:st.session_statefeature:callbacksstatus:needs-product-approval
  • 核对表
  • 我搜索了现有问题
  • 我对这个问题增加了一个非常描述性的标题。
  • 我已提供了以下充分的资料来帮助复制这个问题。

页:1

如果按下按钮后屏蔽(如HTTP请求,睡眠),则用户在st.text rea'上的输入不会被保存在st.session state'上. 另外,如果对屏蔽功能进行评论,则在单击后将“st.text rea”的输入保存在“st.session state”上。

可复制代码示例

[!] (https://static.streamlit.io/badges/streamlit badge black white.svg)] (https://issues.streamlitapp.com/?issues=gh-7862) (中文(简体) ).

2zz
导入时间

导入流体为 st


def set  state(一:int,文本:str) :
st.session 状态.state=一
st.session state.lines = text.splitlines () 互联网档案馆的存檔,存档日期2013-12-22.


时间。 睡眠(2)
如果在st.session 状态中没有“舞台”:
ST.session 状态. state=0
如果st.session state. state ==== 翻译:
文本 = st.text rea (“输入您的文本”,高=100)
st. 按钮( T)
"开始"
点击=set 状态,
args=[1,正文],
(中文(简体) ).
如果st.session state. state. state ===中的日期值 (帮助)
st. title ("您的文本")
用于一,在列表(st.session state.lines)中行:
st. write( f"{i}. {行}") (中文(简体) ).
  1. 输入文本区域的一些案文
  2. 点击 " 开始 " 按钮
  3. 只显示标题(不显示`st.session state'的内容)

[Screen Recording 2023-12-22 at 2 25 05] (https://GitHub.com/streamlit/streamlit/assets/45100960/550da1b4-2db0-4e88-9335-abf26e6204e1).

• 预期行为

输入保存在 “st. session state” 上,并在点击按钮后显示。

当前的行为

直接单击按钮时,用户输入不保存在“st.session state”中。 然而,如果用户点击按钮或文本区域以外的地方后再点击该按钮(这会导致阻塞),则输入会被按预期保存.

这是倒退吗?

  • [ 是的,这曾经是以前版本的。

调试信息

  • 简化版本 :
  • 1.29.0 (韩语)
  • Python版本:
  • 3.11.6 (韩语)
  • 操作系统:
  • Ubuntu 22.04.2 LTS
  • 浏览器:
  • Google Chrome (英语).

补充信息

无回复( N)

内容来源: streamlit/streamlit