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

Streamlit调用empty()后渲染按钮出现StreamlitDuplicateElementId错误的解决请求

Streamlit调用empty()后渲染按钮出现StreamlitDuplicateElementId错误的解决请求

我最近遇到了一个Streamlit的问题,想请大家帮忙排查解决。我写了一段代码,想要实现的逻辑是:先把box设为empty(),渲染按钮A;之后再次清空box,渲染按钮B,如此循环往复。

具体代码如下:

import streamlit as st
from time import sleep

box = st.empty()
while True:
    box.empty()
    button_A = box.button('Btn A')
    sleep(1)
    box.empty()
    button_B = box.button('Btn B')

但运行这段代码时,每次渲染按钮都会抛出StreamlitDuplicateElementId错误。我原本以为调用empty()会彻底清空box容器,这样就不会出现重复元素ID的问题了,可实际情况却和预期不符。有没有大佬能帮我搞清楚问题出在哪,以及该怎么解决这个错误?谢谢大家!

备注:内容来源于stack exchange,提问作者James Chong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 08:38:01