Отключить кнопку действия, когда текстовое поле пусто в приложении Shiny [R]
Я создаю блестящее приложение, в котором запрос от textInput
производится, когда пользователь нажимает кнопку действия "поиск". Я хотел бы, чтобы эта кнопка была отключена, если textInput
коробка пуста я использую shinyjs::toggleState()
здесь, но я не могу понять, какую логику нужно применить, чтобы увидеть, что текстовое поле пусто. В моем воспроизводимом файле ниже, логика, которую я поставил на место is.null(input$query)
, Я также пытался с is.na(input$query)
, length(input$query) == 0
, а также input$query == ''
все безуспешно Что мне вместо этого поставить?
Вот файл app.r:
library(shiny)
library(shinyjs)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
useShinyjs(),
textInput(inputId = "query", label = "Enter query:", value = ""),
actionButton(inputId = "search", label = "Search", icon = icon("search"))
),
mainPanel()
)
)
server <- function(input, output) {
observe({
toggleState("search", !is.null(input$query))
})
}
shinyApp(ui = ui, server = server)
1 ответ
Решение
Как то так сделать?
observe({
if(is.null(input$query) || input$query == ""){
disable("search")
}
else{
enable("search")
}
})
В соответствии с @Sagar вы также можете сделать:
observe({
toggleState("search", input$query != "" | is.null(input$query))
})
или же
observeEvent(input$query,{
toggleState("search", input$query != "" | is.null(input$query))
})