我有一个简单的shiny应用程序,我正在测试SHINY pro,我想访问会话$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文件中的会话$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中使用会话$user吗?
下面是运行项目的代码:
library(rJava)
library(shiny)
install.packages("shiny")
runApp("C://me/pathtoproject")谢谢。
发布于 2015-04-08 22:05:06
你得到的错误确实解决了这个问题(尽管是以一种隐秘的方式)。
当您在ui中调用GetUser函数时,"session“参数是未知的(即,它只被服务器”已知“)。
我建议使用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()))https://stackoverflow.com/questions/29239568
复制相似问题