我无法使此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)