暂停函数以等待来自模式、Shiny 的用户输入

Cha*_*abo 6 r shiny reactive

我有一个闪亮的对话,允许用户输入数据库的凭据。

问题是该模块是在被调用函数内部打开的,因此我需要以某种方式暂停该函数继续运行,直到用户输入所需字段。我尝试过使用req,但无法使其工作,observeEvent()也无法工作,因为我无法return从该环境中获得任何东西。

如果我不以某种方式暂停程序,该函数将在没有用户名和密码的情况下继续运行,并且不会获取数据。“取消暂停”的触发器是input$Submit模态中的按钮。

library(shiny)

ui<-
  fluidPage(
    sidebarLayout(position="left",
              sidebarPanel("Parameters",width = 4,
                radioButtons("Type","Test", choices= list("Test"="p", 
                                                         "Test"="l")),
                actionButton("GO","Open Modual")
              ),
              mainPanel(
                plotOutput("Test")

              )))

server<- function(input,output){

 Credential<-function(Test){

 showModal(modalDialog( 
  title = "Credentials Required",
  textInput("Username", "Enter User Name", value = ""),
  textInput("Password", "Enter Password:", value = ""),
  footer =  actionButton("Submit", "Submit"),
  modalButton("Cancel"))
 )

#Use Assigned Username and Password to go fetch data.
#Note data must be returned, somehow need to pause or somthing here.

  }   

  #Call Function
  observeEvent(input$GO,{
  data <- Credential("Test")
  })

}
shinyApp(server=server,ui=ui)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢,

-查博斯