Я создаю часть аутентификации в своем приложении, сравнивая код, отправленный по электронной почте, и код, который отправляют пользователи. Я попытался добавить оператор if с помощью любого из реактивных (), isolate (), renderTable (). Я либо получаю значение должно быть в ошибке реактивной части, либо приложение не отвечает вообще.
Ниже, что у меня есть в Server.R , приложение не отвечает вообще без ошибок.
shinyServer(function(input, output, session) {
myData <- reactive({
req(input$Id)
#connect to the database, get the data, res
#send an email with random number, rnd
list(res,rnd)
})
output$tbTable <- renderTable({req(input$Auth)
if (input$AuthCode==myData()$rnd) {
myData()$res
}
else{
as.data.frame(c("Authentication Failed"))
}
})
output$downloadData <- downloadHandler(
filename = function() {
paste(input$Id, " filname.xlsx", sep = "")
},
content = function(file) {
write.csv(myData(), file, row.names = FALSE)
}
)#this part need to depend on the if-statement as well
}
)
UI.R
ui <- shinyUI(fluidPage(title = "aaa",
titlePanel("aaa"),
sidebarLayout(
sidebarPanel(
textInput("Id", "Enter Acct Name below"),
submitButton(text="Submit"),
tags$hr(),
numericInput("AuthCode",label="Authentication",value=""),
actionButton("Auth",label="Submit"),
tags$hr(),
tags$hr(),
downloadButton("downloadData", "Download Data")
),
mainPanel(
tabsetPanel(
tabPanel("Data", tableOutput("tbTable"))
))
),
)
)