You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌入st.button的st.data_editor修改值后消失,如何解决?

解决方案

你的代码点击按钮后会新增一个data_editor,导致页面出现两个表格编辑器。要实现点击按钮替换原有编辑器的效果,用Streamlit的会话状态控制就行:

import streamlit as st
import pandas as pd

df = pd.DataFrame({"col": ["foo", "baz", "qux"]})

# 初始化会话状态,记录当前显示的编辑器标识
if "current_editor_key" not in st.session_state:
    st.session_state.current_editor_key = "OK"

# 点击按钮切换编辑器标识
if st.button("Show another df"):
    st.session_state.current_editor_key = "KO" if st.session_state.current_editor_key == "OK" else "OK"

# 根据当前标识渲染对应的data_editor
st.data_editor(df, key=st.session_state.current_editor_key)

这么改之后,点击按钮只会切换显示不同的编辑器,不会新增。两个编辑器的编辑状态是独立保存的,切换回去还能看到之前编辑的内容。

内容的提问来源于stack exchange,提问作者user21474411

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 22:07:12