总是会出现闪亮的conditionalPanel

问题描述 投票:1回答:1

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

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

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

 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的值如何,总是会出现两个条件面板。

shiny
1个回答
2
投票

你需要使用input.intype而不是input$intype。此外intype在你的例子中只能是'd''s',你在你的条件下使用'r'

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

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

© www.soinside.com 2019 - 2024. All rights reserved.