Код: Выделить всё
tgb.selector(value="{sel_shape}", lov=list(shapes.keys()), dropdown=True, label="Shapes")
Вот что я пробовал.
Обновить словарь фигур
Простое обновление словаря (например, добавление нового ключа shape['new_shape'] = [1, 2, 3]) не работает, поскольку селектор lov не является динамическим свойством.
Определите lov в переменной состояния
Я переопределил селектор как tgb.selector(value="{sel_shape}", lov="{ selector_lov}", dropdown=True, label="Shapes") и определил глобальную переменную модуля selector_lov = shape.keys(). Затем манипулирование словарем фигур не влияет на селектор lov.
Перезагрузите страницу
Каждый раз, когда я манипулирую словарем, я обязательно перезагрузите локальную страницу (
Код: Выделить всё
navigate(state, to="emitter", force=True)). В моем верхнем модуле у меня есть:
def on_navigate(state, page_name, params):
if page_name == "emitter":
state.selector_lov = state.shapes.keys()
Подробнее здесь: https://stackoverflow.com/questions/786 ... at-runtime