打印Shiny conditionalPanel中使用的JavaScript条件

时间:2017-11-14 17:04:12

标签: javascript r shiny

我在Shiny应用中创建了一个conditionalPanel。我试图调试JavaScript条件,但没有检查它,我只是猜测随机JavaScript位。有没有办法直接检查病情?

selectizeInput('groups','Groups:',
                   choices = list('Choice1' = 'choice1','Choice2' = 'choice2'),
                   multiple = TRUE,selected = NULL
)

conditionalPanel(
          print("input.groups.indexOf('choice2') >= 0"), # desired output
          condition = "input.groups.indexOf('choice2') >= 0",
          selectInput("statusfilter", "StatusFilter",
                      list("NewChoice1" = "nc1","NewChoice2" = "nc2"))
)

上面的代码(从我的生产代码中推广)在我点击选择之前启动时显示了conditionalPanel。一旦我这样做,它就会消失,直到我选择' choice2'。如果我能检查一下情况,我可以快速解决这个问题。

1 个答案:

答案 0 :(得分:1)

在评论我们的print语句以便代码运行后,如果打开javascript控制台,您将看到错误:

Error parsing expression: input.groups.indexOf('choice2') >= 0

这表明你的JS代码中断了。这是因为input.groups为空,对空值执行.indexOf会导致错误。

所以你想要的是:

condition = "input.groups !== null && input.groups.indexOf('choice2') >= 0"