总是会出现闪亮的conditionalPanel

时间:2018-02-25 09:27:32

标签: shiny

我构建了一个小型应用程序,它使用了一个开箱即用的条件面板。

第二次尝试不太令人满意。问题是无论条件是否满足,条件面板都会出现。

这是我在精简版中所拥有的内容:

 library(shiny)
 source('distplot.r')
 ui<-fluidPage(
 fluidRow(

 radioButtons("intype", 'Data or Statistics?',
         c(Data="d", Statistics="s")),

 #Only show this if sample data are to be entered     
 conditionalPanel(
    condition = "input$intype == 'd'",
      textInput('x', 'Sample Data (Comma Separated)', value='')),

#Only shows this panel for summary statitics (sd or sigma if known)
conditionalPanel(
    condition = "input$intype == 'r'",
        numericInput('m','Sample Mean',value=''),
        numericInput('sd','SD (Population or Sample)',value=''),
        numericInput('n','Sample size',value=''))
          )
             )       

 server<-function(input, output){

     DTYPE<-eventReactive(input$go,{input$dtype})
     output$plot<-renderPlot({hist(runif(1000))})
                        }
shinyApp(ui=ui, server=server)

无论input$intype的值是什么,都会出现两个条件面板。

1 个答案:

答案 0 :(得分:2)

在您的情况下,您需要使用input.intype而不是input$intype。此外,intype在您的示例中只能是'd''s',并且您在条件中使用'r'

?shiny::conditionalPanel的详细信息部分:

  

在JS表达式中,您可以引用包含输入和输出的当前值的输入和输出JavaScript对象。例如,如果您的id为foo的输入,则可以使用 input.foo 来读取其值。 (请确保不要修改输入/输出对象,因为这可能会导致不可预测的行为。)