【问题标题】:shiny: Enable sliderInput() based on selection in radioButton()闪亮:根据radioButton() 中的选择启用sliderInput()
【发布时间】:2020-08-11 13:07:13
【问题描述】:

我无法让这个observeEvent 正常工作。

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

我错过了什么?

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)

【问题讨论】:

  • ui 中添加shinyjs::useShinyjs(), 到您的fluidPage(也应该在您的帖子中添加library(shinyjs)
  • 嗨@Ben。一如既往地感谢你。那解决了它。考虑发布作为答案。祝你有美好的一天。

标签: r shiny radio-button slider shinyapps


【解决方案1】:

在使用大多数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)

【讨论】:

    猜你喜欢
    • 2020-08-08
    • 2018-12-02
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多