import streamlit as st
import functions
list = functions.get_list()
def add_todo():
todo = st.session_state["new_todo"] + "\n"
list.append(todo)
functions.write_list(list)
st.title("Simple To-Do app")
st.subheader("This is my todo app")
st.write("Increase your productivity")
for todo in list:
st.checkbox(todo)
st.text_input(label = "", placeholder = "Add a new todo...",
on_change=add_todo, key = 'new_todo')
创建小部件时,会根据其结构为其分配一个内部键。具有相同结构的多个小部件将导致相同的内部密钥,从而导致此错误。
要修复此错误,请将唯一的
key
参数传递给 st.checkbox
。
追溯:
File "C:\Users\seraf\Desktop\Final project\web.py", line 17, in <module>
st.checkbox(todo)
发生这种情况是因为您尝试生成多个具有相同键值(
none
)的复选框。为了解决这个问题,每个新复选框都应该有一个唯一的键值。unique_value
的值始终会增加,这将使每个新的复选框键与其余复选框的延迟不同。
unique_value = 0
for todo in list:
unique_value += 1
st.checkbox(todo, key=f"todo{unique_value}")
DuplicateWidgetID:有多个相同的 st.text_input 小部件具有相同的生成密钥。
创建小部件时,会根据其结构为其分配一个内部键。具有相同结构的多个小部件将导致相同的内部密钥,从而导致此错误。
要修复此错误,请将唯一的键参数传递给 st.text_input。
回溯: 文件“C:\Users\jay\Downloads\Face-News-Detection-Machine-Learning-main\Face-News-Detection-Machine-Learning-main pp.py”,第 66 行,位于 input_text = st.text_input('输入新闻文章') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我也遇到同样的问题,请大家帮帮我