Приложение ниже правильно отключит кнопку, если введен хотя бы 1 символ, а затем активирует ее с 6 или более. Кнопка активна, когда символы не заданы, потому что req (input $ some_text) возвращает тихую ошибку.
library(shiny)
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
textInput("some_text", "Write at least 5 characters to enable button",
value = ""),
actionButton("button", "A Button")
)
server <- function(input, output) {
first_step <- reactive({
req(input$some_text)
stringr::str_count(input$some_text, "[0-9]") > 5
})
observe({
toggleState("button", condition = first_step())
})
}
Я понимаю, что toggle () не работает, когда нет ввода.
В таком случае, следует ли всегда использовать выражение if?
first_step <- reactive({
if(input$some_text > 0){
stringr::str_count(input$some_text, "[0-9]") > 5
} else FALSE
})