Как создать несколько обратных вызовов, используя double для l oop? - PullRequest
1 голос
/ 19 апреля 2020

Сценарий У меня есть пул из x контейнера div, каждое из которых содержит y количество полей ввода, которые все скрыты.

И у меня есть форма ниже, которая содержит одно поле ввода (которое принимает число n) и кнопку отправки.

Одним щелчком мыши на основе входных данных создается контейнер Div с n количеством полей ввода (которые были изначально скрыты). Это потребует х количество функций обратного вызова, которые будут вызваны позже для получения значений. Теперь при каждом щелчке на основе предоставленного n создается другой контейнер с набором новых полей ввода. Это может быть сделано до некоторого предела в зависимости от заданного размера скрытого деления, созданного вначале.

Проблема в том, что у меня есть много похожих обратных вызовов, которые, как мне показалось, было бы лучше поместить в al oop, в данном случае двойное для l oop. Один для каждого контейнера и один для каждого нового элемента внутри этого контейнера. Но это не работает, но использование одного для l oop для создания каждого элемента (обратных вызовов) внутри контейнера работает нормально. Если я положу это в двойное число для l oop, то это не сработает.

for i in range(5):
    for j in range(5):
        @app.callback(Output(f'{i}-{j}','children'),[Input(...)])
        def foo(value):
            pass

Я хочу знать, возможно ли это сделать даже с Da sh? Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Для этого вида использования я бы рекомендовал Обратные вызовы для сопоставления с образцом .

0 голосов
/ 19 апреля 2020

Если вы пытаетесь создать массив обратных вызовов, чтобы сделать что-то позже, вы можете сделать это так:

[app.callback(Output('i-j', 'children'), [Input(...)])(lambda value: None) for j in range(5) for i in range(5)]
...