проверка сообщения, которое не отображается пользователю нигде на экране

#r #shiny

#r #блестящий

Вопрос:

Мой фрейм данных train_df фильтруется для входных данных, которые предоставляет пользователь. После этого я использую отфильтрованный фрейм данных для запуска модели. Но если пользователь устанавливает фильтр слишком узким, и для этих фильтров нет точек, я хочу показать пользователю сообщение об ошибке, предпочтительно в модальном поле (если нет, то где угодно), что для ваших фильтров не найдено точек. Я использую следующий код на стороне моего сервера. ‘update’ — это идентификатор ввода моей кнопки в пользовательском интерфейсе })

 
observeEvent(input$update,{


shiny::validate(
        need(nrow(train_df) > 0, "No points found for these filters!")
      )
    
})
  

Мой оператор validate работает, но сообщение об ошибке не отображается в приложении. Любая помощь будет оценена.

Комментарии:

1. Трудно диагностировать проблему, даже не взглянув на полный код, показывающий, как train_df был создан.

2. Я полагаю, validate показывает его сообщение в элементе пользовательского интерфейса, в который включен код (либо напрямую, либо через реактивную зависимость). Здесь вы не включаете его ни во что, связанное с пользовательским интерфейсом, поэтому ему некуда идти. Например, если у вас есть data <- reactive({ validate(...); ...}) а затем в другом месте output$tbl <- renderTable({ data(); }) , то сообщение validate будет отображаться в "tbl" элементе пользовательского интерфейса.

3. Смотрите shiny.rstudio.com/articles/validation.html и shiny.rstudio.com/reference/shiny/latest/validate.html