Распечатать условие JavaScript, используемое в Shiny conditionalPanel

1

Я создаю conditionalPanel в приложении Shiny. Я пытаюсь отладить условие 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 при запуске, прежде чем я даже нажму на выбор. Как только я это сделаю, он исчезнет, пока я не выберу "выбор2". Если бы я мог проверить состояние, я мог бы исправить это быстро.

Теги:
shiny

1 ответ

1

После комментирования нашего утверждения print, чтобы код запускался, если вы откроете консоль javascript, вы увидите сообщение об ошибке:

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

Это говорит о разрыве кода JS. Это связано с тем, что input.groups равно null, и выполнение .indexOf при нулевом значении вызывает ошибку.

Итак, что вы хотите в этом состоянии:

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

  • 0
    Это имеет смысл! Я попытался сделать вопрос больше об общей опции отладки, но, возможно, у меня не получилось. Я видел много подобных вопросов, которые не задавали бы, если бы они знали, где искать себя. Если вы можете отредактировать свой ответ, чтобы подчеркнуть, что вы используете консоль JS для отладки, я думаю, что он лучше ответил бы на общий вопрос. Это действительно полезно, что вы ответили на конкретный вопрос, хотя!
  • 0
    ну, на самом деле я не делал никакой отладки, я просто открыл консоль в качестве первого шага по умолчанию и увидел ошибку. Очень часто ошибки (как в javascript, так и в R) в коде, которые кажутся невинными, возникают из-за попытки что-то сделать с нулевым значением, поэтому я предположил, что это так, check и yep.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню