簡體   English   中英

根據用戶輸入更新 plotly Dash dcc.Textarea 值

[英]Update the plotly Dash dcc.Textarea value from what user inputs

我正在創建一個 plotly Dash 應用程序,其中包含來自 dash 核心組件 (dcc.Textarea) 的文本區域。 最終用戶希望保存來自文本區域的輸入,以便下次用戶進入更新該字段時可以重用它。 我能夠保存保存文本區域的內容,但是如何使用最新編輯更新該字段的默認值? 我嘗試更新文本區域的“價值”和“孩子”,但沒有奏效。 這是代碼。

folder=r'C:\Temp'
def text_ar_val(file='TextBox1.txt'):
    with open(folder+fr'\Data\{file}','r') as f:
        return f.read()
app = dash.Dash(__name__)
app.layout = html.Div([dcc.Textarea(
                                id='textarea1', className='textarea1',
                                value=text_ar_val()
                            ),
                            html.Div(daq.StopButton(id='save1',className="button",
                                                    buttonText='Save', n_clicks=0))
                        ])
@app.callback(Output('textarea1', 'children'),
              [Input('save1', 'n_clicks'), Input('textarea1','value')])
def textbox1(n_clicks, value):
    if n_clicks>0:
        global folder
        with open(folder+r'\Data\TextBox1.txt','w') as file:
            file.write(value)
            return value

我也試過:

@app.callback(Output('textarea1', 'value'),
          [Input('save1', 'n_clicks'), Input('textarea1','value')])

dcc.Textarea 模塊采用 arguments persistence 和 persistence_type。 設置 persistence=True 和 persistence_type='local'。 將 persistence 設置為 True 將告訴應用程序保存最后輸入的數據,將 persistence_type 設置為 'local' 會將最后輸入的數據保存到 window.localStorage。 因此,當用戶退出瀏覽器並返回時,該字段將具有上次輸入數據的默認值。 代碼將是:

app.layout = html.Div([dcc.Textarea(
                                id='textarea1', className='textarea1',
                                value=text_ar_val(),
                                persistence=True, persistence_type='local'
                            ),
                            html.Div(daq.StopButton(id='save1',className="button",
                                                    buttonText='Save', n_clicks=0))
                        ])

這段代碼前后的所有內容都保持不變。 幾乎所有其他 dcc 組件都將接受持久性和持久性類型的參數(例如 dcc.Dropdown)。

有關更多信息,您可以 go 到:

https://dash.plotly.com/dash-core-components/textarea

暫無
暫無

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

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