簡體   English   中英

破折號中的條件輸入

[英]Conditional input in dash

是否可以在破折號中使輸入成為條件? 下面是我的代碼。 我想要完成的是,我希望選項卡僅在 main_tab == 'A' 時作為輸入,如果 main_tab == 'B',我希望選項卡為 state(不是輸入)

@app.callback(
    Output('store-data', 'data'),
    Input("inputid", "n_submit"),
    Input("search-button","n_clicks"),
    Input("tabs-main","value"),
    Input("tabs","value"),
    State("inputid", "value"),
    prevent_initial_callback=True,
)
def store_data(n_submit,n_clicks,main_tab,tab,id_value):
    if n_submit or n_clicks>0:
        if main_tab=='A':
            uniqueid = b64.encode(id_value)
            locations_staging = query_staging.get_location(uniqueid,tab)
            data = query_staging.get_data(locations_staging)
            return data
        elif main_tab=="B":
            uniqueid = b64.encode(id_value)
            locations_cu = query_cu.get_location(uniqueid)
            data = query_cu.get_data(locations_cu)
            return data

如何做到這一點?

您可以在回調中創建條件。 但問題可能出在您想要讀取 State 和 Input 的值以創建條件時,因為它們是模塊dash.dependencies上的類。 因此,您不能提出如下條件:

 State('input-1-state', 'value') if Input('submit-button-state', 'n_clicks') > 1
                                 else State('input-2-state', 'value')

您可以使用 help(Input) 閱讀有關 Input 和 State 的更多信息。

我想你可以按照你現在的方式來做調理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM