我正在尋找一種方法來實施禁用/ abling功能通過shinyUI元素。 Herexiaodaigh給出了一個提示如何禁用/能夠actionButton
(見下圖),這是我想要的結果,但代碼沒有與我測試過的其他gui元素(例如numericInput
)做伎倆。R閃亮 - 禁用/能夠shinyUI元素
(我知道conditionalPanel
功能,但是這不是我想有效果。)
我要強烈感謝任何建議,特別是因爲我沒有太多熟悉JavaScript
。
我正在尋找一種方法來實施禁用/ abling功能通過shinyUI元素。 Herexiaodaigh給出了一個提示如何禁用/能夠actionButton
(見下圖),這是我想要的結果,但代碼沒有與我測試過的其他gui元素(例如numericInput
)做伎倆。R閃亮 - 禁用/能夠shinyUI元素
(我知道conditionalPanel
功能,但是這不是我想有效果。)
我要強烈感謝任何建議,特別是因爲我沒有太多熟悉JavaScript
。
約當你的元素「消失」時,一定條件下是假的。
如果這是你的目的,你可以添加到您的server.R這
output$sliderInputUI <- renderUI({
if (condition == TRUE) {
sliderInput("id", "text",
min = 1, max = 8,
value = 1, step = 1
)
}
})
添加到您的ui.R htmlOutput( 「sliderInputUI」)
sliderInput
將僅出現在你的ui當條件爲TRUE時。
您在問題中鏈接到的代碼對其他輸入窗口小部件無效的原因是,不同的輸入窗口小部件需要不同的JavaScript調用才能禁用。另一個問題是,當閃亮創建一個輸入元素時,有時您提供的id是實際的HTML輸入標記的ID,而有時該ID會被賦予輸入標記的容器。
shinyjs包中有一個disable
函數,它可以像任何閃亮輸入一樣工作。免責聲明:我寫了這個包。
這裏是你將如何實現禁用numericInput
就像你問
library(shiny)
runApp(shinyApp(
ui = fluidPage(
shinyjs::useShinyjs(),
numericInput("test", "Test", 5),
actionButton("submit", "Choose")
),
server = function(input, output, session) {
observeEvent(input$submit, {
shinyjs::disable("test")
})
}
))
你怎麼稱呼的「ID」,當條件不滿足?當您引用不存在的輸入變量時,閃亮似乎會產生錯誤。 – Sweetbabyjesus
您可以使用'if(!is.null(input $ id))'引用不存在的輸入變量。 – tnaake
ui中引用的sliderInputUI如何?答:uiOutput(「sliderInputUI」) – PeterVermont