我想检查一些用户输入的数据,测试一些条件并通过modalDialog()
发出警报以获得更多用户输入(例如提示X is NA; is this correct? Y/N
)。
但是,我发现如果我在showModal(modalDialogFunction())
中放置多个observeEvent
个调用,则只会为用户评估最后一个,因为模式会弹出,等等{{1 }}语句验证条件是否满足。
如何以这种或类似的格式执行顺序模态?
单个文件应用:与print
一起玩,看看如何执行模态。
numericInput()
答案 0 :(得分:1)
我发现不可能有两个输入按钮具有相同的ID并且同时可见。要解决这个问题,打开第一个模态的按钮需要一个不同的ID - 模态中的所有"下一个" -Buttons可以共享一个ID,因为它们永远不会同时显示。请查看此工作示例:
ui <- fluidPage(
actionButton("openFirst", label="Click")
)
server <- function(input, output) {
# function to create a modal, can be different functions as well
makeModal <- function(text){
modalDialog(
footer=list(actionButton("click", label="Click to continue"), modalButton("Close")),
numericInput("number", "Enter a number", value=0),
p(text)
)
}
# open the first modal
observeEvent(input$openFirst, {
showModal(makeModal("first one opened"))
})
# open a new modal at button click.
observeEvent(input$click, {
if(input$number > 15){ showModal(makeModal("input was greater than 15!"))
}else if(input$number > 5){ showModal(makeModal("input was greater than five!"))
}else{
showModal(makeModal("Input was not greater than five!"))
}
})
}
shinyApp(ui = ui, server = server)