我的闪亮应用中有一个selectizeInput
和一个fileInput
。
我要保持fileInput
处于禁用状态,直到未在selectizeInput
中选择某个值。
我还希望每次用户单击fileInput
时都会出现弹出消息选择一个值。
我该怎么办。
答案 0 :(得分:0)
正如其他人所提到的,shinyjs
包在这里很有用。您可以使用enable
,disable
或toggleState
。
library(shiny)
library(shinyjs)
ui = fluidPage(
shinyjs::useShinyjs(),
selectizeInput("selector", label="Choose 2:", multiple=TRUE,
choices=letters[1:5], selected=letters[1:5]),
fileInput("file_inputer", label="upload file")#,
# dataTableOutput('table')
)
server = function(input, output) {
observe({
shinyjs::toggleState("file_inputer", length(input$selector) %in% 0:4)
})
observeEvent(input$file_inputer, {
showModal(modalDialog(
title="Do you want a header row?",
selectInput("option_selector", label="Choose an option",
choices=c("option 1", "option 2", "option 3")),
footer = tagList(actionButton("read_file", "Read File"),
modalButton("Cancel")
)
))
})
observeEvent(input$read_file, {
# do something with your option value
removeModal()
})
}
# Run the application
shinyApp(ui = ui, server = server)