r-shing:根据radioButton()中的选择启用sliderInput()



我无法使此observeEvent正常工作。

只有在radioButton()中选择了时,才应启用和访问sliderInput()

我错过了什么?

library(shiny)

ui <- fluidPage(

radioButtons("EXBR", "External Beam Radiation", choiceValues=list("No","Yes"),
choiceNames=list("No","Yes"), selected ="No", inline=T),
sliderInput("EXBRGy", "Cumulative Gy dosage", 
min = 2, max = 60, value = 40)

)
server <- function(input, output, session) {
observeEvent(input$EXBR, {
if((input$EXBR == "Yes")){
disable("EXBRGy")
}else{
enable("EXBRGy")
}
})
}
shinyApp(ui, server)

在使用大多数shinyjs函数之前,您需要在应用程序的ui中调用useShinyjs()。最好把它放在顶部附近作为惯例。还添加了library(shinyjs),并删除了if语句中多余的括号。

library(shiny)
library(shinyjs)
ui <- fluidPage(
shinyjs::useShinyjs(),
radioButtons("EXBR", "External Beam Radiation", choiceValues=list("No","Yes"),
choiceNames=list("No","Yes"), selected ="No", inline=T),
sliderInput("EXBRGy", "Cumulative Gy dosage", 
min = 2, max = 60, value = 40)
)
server <- function(input, output, session) {
observeEvent(input$EXBR, {
if(input$EXBR == "Yes"){
disable("EXBRGy")
}else{
enable("EXBRGy")
}
})
}
shinyApp(ui, server)

最新更新