R Shiny - 如何强制提交按钮以影响并非所有输入

时间:2013-10-11 22:34:39

标签: r shiny

我在Shiny应用程序中使用submitButton时遇到了问题(我使用的是一些耗时的渲染是由app-user提供的数据完成的)。我还使用一些radioButtonsconditionalPanel来定义用户可以选择参数的变量组。请参阅附图以获得想法(用户正在选择列表类型,并且 - 基于他的列表选择 - 显示特定列表(conditionalPanel正在运行),用户从中选择参数< / strong>),或运行下面提供的可重新编写的示例。

当然,只有参数是在渲染输出时使用的值,我想强制submitButton以自动方式传递 参数。问题是submitButton也影响radioButtons元素,它无法用于选择所需的值(因为值列表没有切换)。

问题:有没有办法通过submitButton定义哪些UI元素是停止自动更新以解决我的问题?感谢您的任何帮助!

UI:

library(shiny)

shinyUI(pageWithSidebar(  

   headerPanel("Problem with submit button"),

   sidebarPanel(

     radioButtons("selectionway", "Choose list type", c(number='number', letter='letter')),

     conditionalPanel(
  condition = "input.selectionway == 'number'",
  selectInput("numberlist", "Choose NUMBER:", choices = c("11111", "22222", "33333"))
  ),    

     conditionalPanel(
  condition = "input.selectionway == 'letter'",
  selectInput("letterlist", "Choose LETTER:", choices = c("A", "B", "C"))
  ),          

    submitButton("submitButton") 

),

  mainPanel(
   verbatimTextOutput("list"),
   verbatimTextOutput("value")  
  )
))

服务器

library(shiny)

shinyServer(function(input, output) {

  selected.value <- reactive({
    if(input$selectionway=="letter"){
      return(input$letterlist)
    } else {
      return(input$numberlist)
    }    
  })

  output$list <- renderText({
    input$selectionway
  })

  output$value <- renderText({    
   selected.value()
  })

enter image description here     })

0 个答案:

没有答案