我有一个简单的闪亮应用程序,我正在测试SHINY专业版,我想访问会话$ user,就像文档建议的那样:
http://rstudio.github.io/shiny-server/latest/#flat-file-authentication。请参阅4.1节,其中显示了此代码:
shinyServer(function(input, output, session) {
output$username <- reactive({
session$user
})
该代码有效但我需要通过GetUser()函数访问ui.r文件中的session $ user
这是我的ui.r文件:
library(shiny)
shinyUI(fluidPage(
textOutput("HeaderTime"),
sidebarPanel(
selectInput("t", "t:", as.character(GetUser()), selected = as.character(GetUser())), width = 2
),
mainPanel(
tabsetPanel(
tabPanel("test",
dataTableOutput("Table"),
plotOutput("Plot"),
# verbatimTextOutput("Txt"),
width = 12
)
)
)
))
您可以在selectInput中看到GetUser()函数。我已将GetUser()放在我的server.R文件中:
shinyServer(function(input, output, session) {
GetUser<-reactive({
return(session$user)
})
output$Plot<-renderPlot({
hist(rnorm(1000))
})
output$Table<- renderDataTable({
data.frame(a=c(1,2,3,4),b = c("TEst","test","test","test"))
})
})
当我运行此代码时,我收到错误:
Error in GetUser() : argument "session" is missing, with no default
知道如何让ui.r访问server.r文件中的GetUser(),以便可以在ui中使用session $ user吗?
以下是运行项目的代码:
library(rJava)
library(shiny)
install.packages("shiny")
runApp("C://me/pathtoproject")
谢谢。
答案 0 :(得分:0)
你得到的错误确实解决了问题(尽管是以一种神秘的方式)。
当您在ui中呼叫GetUser
功能时,&#34;会话&#34;参数是未知的(即它只是&#34;已知&#34;服务器)。
我建议您使用updateSelectInput
(或renderUI
,如果您愿意)并从服务器端发送session$user
值。
像(未经测试)的东西:
server = function(session,input, output) {
GetUser<-reactive({
return(session$user)
})
updateSelectInput(session, "t", "t:", as.character(GetUser()),selected = as.character(GetUser()))