【发布时间】:2018-04-04 02:29:52
【问题描述】:
我正在构建一个闪亮的应用程序,当用户单击“搜索”操作按钮时,会在其中进行来自 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)
【问题讨论】:
-
使用
toggleState("search", input$query != "" | is.null(input$query))