0
我正在編寫一些Shiny代碼,其中用戶將輸入一些輸入到應用程序,然後單擊一個操作按鈕。操作按鈕會觸發一系列需要很長時間才能運行的模擬,所以我希望一旦操作按鈕被點擊以使其被禁用,以便用戶在仿真運行之前不能繼續點擊它。我碰到了shinyjs::enable
和shinyjs::disable
的功能,但一直在使用它們很難。這裏是我的服務器代碼:禁用Shiny中的按鈕
output$button1= renderUI({
if(input$Button1 > 0) {
shinyjs::disable("Button1")
tableOutput("table")
shinyjs::enable("Button1")}
})
但是,當我使用此代碼,並單擊操作按鈕什麼也沒有發生。即,動作按鈕不會變灰,表格也不會生成。然而,當我帶走shinyjs::enable()
命令,即
output$button1= renderUI({
if(input$Button1 > 0) {
shinyjs::disable("Button1")
tableOutput("table")
}
})
表最先被生成,則該按鈕變爲灰色,不過我本來期望的按鈕變灰,然後將表來生成自己。
我在這裏做錯了什麼?
這裏是基於Geovany的建議,我更新的代碼,但它仍然無法對工作我
Button1Ready <- reactiveValues(ok = FALSE)
observeEvent(input$Button1, {
shinyjs::disable("Button1")
RunButton1Ready$ok <- FALSE
RunButton1Ready$ok <- TRUE
})
output$SumUI1= renderUI({
if(Button1Ready$ok){
tableOutput("table")
shinyjs::enable("Button1")
}
})
那裏澄清我也有:
output$table <- renderTable({
#My code....
)}
嗨Geovany,我根據你的建議更新了我的問題。仍然不適合我。介意看看是否只有一個簡單的錯誤? – RustyStatistician
如果沒有問題的最小工作示例,很難知道問題是什麼。請提供任何人都可以執行的工作代碼。 – Geovany