我在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'。如果我能检查一下情况,我可以快速解决这个问题。
答案 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"