Shiny: проблемы с actionButton (даже без сигнала о нарушении

#r #shiny #dashboard #shinydashboard

#r #блестящий #Информационная панель #shinydashboard

Вопрос:

Я создаю приложение Shiny, и последние два дня меня блокируют на следующем шаге: я поместил кнопку «Отправить» в форму ввода, и, по-видимому, проблем нет, но каждый раз, когда я запускаю приложение, я не могу нажать на нее, потому что в самом начале оно показывает мне сигнал «посторонним вход воспрещен», запрещающий мне ничего больше не делать.

Вот код, который я использую:

     # Packages ----
if(require("pacman")=="FALSE"){
  install.packages("pacman")
}
library(pacman)
pacman::p_load(dplyr, tidyr, shiny, shinydashboard)



# Global scope ----

dish <- c("Salad", "Spaghetti Carbonara", "Scrambled eggs")
allergens <- c("sesame", "lactose", "eggs")
keywords <- c("veggie", "pasta", "none")
dishes <- data.frame(dish, allergens, keywords)


# Function to label mandatory fields ----
labelMandatory <- function(label) {
  tagList(
    label,
    span("*", class = "mandatory_star")
  )
}

appCSS <- ".mandatory_star { color: red; }" #to make the asterisk red

MandatoryFields_dishes <- c(names(dishes[,-3]))
fields_dishes <- c(names(dishes))



ui <- dashboardPage(
                    dashboardHeader(title = "sample"),
                    dashboardSidebar(
                      sidebarMenu(
                        menuItem("Dishes", tabName = "dishes")
                      )
                    ),

                    dashboardBody(

                      # Dishes
                      tabItems(
                        tabItem(tabName = "dishes",
                                tabsetPanel(
                                  tabPanel("Typeform",
                                           fluidPage(
                                             shinyjs::useShinyjs(),
                                             shinyjs::inlineCSS(appCSS),
                                             titlePanel("Dish introduction"),
                                             div(
                                               id="form",
                                               textInput("dish", labelMandatory("Dishes"), ""),
                                               textInput("allergens", label = "Allergens",""),
                                               textInput("keyword", label = "Keyword", ""),
                                               actionButton("submit", "Submit", class="btn-primary")
                                             )
                                           ))
                                ))

                      ))
)



server <- function(input, output) {



  observe({
    mandatoryFilled_dishes <-
      vapply(MandatoryFields_dishes,
             function(x) {
               !is.null(input[[x]]) amp;amp; input[[x]] != ""
             },
             logical(1))
    mandatoryFilled_dishes <- all(mandatoryFilled_dishes)

    shinyjs::toggleState(id = "submit", condition = mandatoryFilled_dishes)
  })


}


shinyApp(ui, server)
  

Думаю, я чего-то не хватает на сервере. Если кто-нибудь сможет мне помочь, я буду очень благодарен, заранее большое спасибо.

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

1. мне кажется, что все в порядке, у вас есть 2 обязательных поля, в MandatoryFields_dishes которых есть dish и allergens , тогда они должны быть активными, чтобы нажать кнопку, все работает так, как должно. Я не понимаю вашего вопроса

2. Проблема, с которой я сталкиваюсь, заключается в том, что после запуска приложения, когда я наношу указатель на кнопку, становится сигналом о запрете проникновения, даже если обязательные поля заполнены.