我正在尝试使用conditionalPanel在加载文件时显示消息。但是,一旦条件为TRUE,面板就不会消失。我在下面创建了可复制的代码:
服务器
library(shiny)
print("Loading start")
print(paste("1->",exists('FGram')))
FGram <- readRDS("data/UGram.rds")
print(paste("2->",exists('FGram')))
print("Loading end")
shinyServer( function(input, output, session) {
})
用户界面
library(shiny)
shinyUI( fluidPage(
sidebarLayout(
sidebarPanel(
h4("Side Panel")
)
),
mainPanel(
h4("Main Panel"),
br(),
textOutput("First Line of text.."),
br(),
conditionalPanel(condition = "exists('FGram')", HTML("PLEASE WAIT!! <br>App is loading, may take a while....")),
br(),
h4("Last Line of text..")
)
)
)
最佳答案
提供给conditionalPanel
的条件是在javascript环境中而非R环境中执行的,因此无法在R环境中引用或检查变量或函数。解决此问题的方法是使用uiOutput
,如下面的示例所示。
myGlobalVar <- 1
server <- function(input, output) {
output$condPanel <- renderUI({
if (exists('myGlobalVar'))
HTML("PLEASE WAIT!! <br>App is loading, may take a while....")
})
}
ui <- fluidPage({
uiOutput('condPanel')
})
shinyApp(ui=ui, server=server)
关于r - 在Shiny中的conditionalPanel无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34658490/