gpt4 book ai didi

r - Shinyfiles 和 renderUI 不能正常工作

转载 作者:行者123 更新时间:2023-12-04 09:15:51 25 4
gpt4 key购买 nike

我正在尝试在我的 ShinyApp 中使用 ShinyFiles 库,以便让用户可以选择一组文件或目录。
我的想法是使用根据复选框选择而变化的 uiOutput。

我在这里报告代码,这可能比文字更能说明问题

UtilityUI <- fluidPage(
titlePanel("page1"),
fluidRow(
column(2,
wellPanel(
tags$p("Check the box below if you want to choose an entire directory"),
checkboxInput(inputId = 'directory_flag', label = 'Directory path?', value = FALSE),
uiOutput("input_selection_ui")
)
),
column(8
#...
)
)
)

UtilityServer <- function(input, output, session) {

output$input_selection_ui <- renderUI({
if(input$directory_flag == TRUE) {
shinyDirButton(id = "infiles", label = "Choose directory", title = "Choose a directory")
} else {
shinyFilesButton(id = "infiles", label = "Choose file(s)", title = "Choose one or more files", multiple = TRUE)
}
})


shinyFileChoose(input, 'infiles', roots=getVolumes(), session=session, restrictions=system.file(package='base'))
shinyDirChoose(input, 'infiles', roots=getVolumes(), session=session, restrictions=system.file(package='base'))
}

shinyApp(UtilityUI, UtilityServer)

按下“shinyFiles”按钮时会出现问题:在两种情况下(shinyDirButton 和shinyFilesButton),弹出窗口都不会加载根目录。

如果我不使用 uiOutput 函数一切正常...但在这种情况下,我无法以动态方式更改我的 UI...

非常感谢您的回复,

因齐里奥

最佳答案

看来我也不能让它与 renderUI() 一起工作.相反,我使用 conditionalPanel() 实现了相同的行为显示替代按钮。这似乎有效。这是代码:

ui <- shinyUI(fluidPage(
checkboxInput(
inputId = 'directory_flag',
label = 'Directory path?',
value = FALSE
),

conditionalPanel(
"input.directory_flag == 0",
shinyFilesButton(
id = "infile",
label = "Choose file(s)",
title = "Choose one or more files",
multiple = TRUE
)
),
conditionalPanel(
"input.directory_flag == 1",
shinyDirButton(id = "indir", label = "Choose directory", title = "Choose a directory")
)
))

server <- shinyServer(function(input, output, session) {
shinyFileChoose(
input,
'infile',
roots = getVolumes(),
session = session,
restrictions = system.file(package = 'base')
)
shinyDirChoose(
input,
'indir',
roots = getVolumes(),
session = session,
restrictions = system.file(package = 'base')
)
})

shinyApp(ui, server)

关于r - Shinyfiles 和 renderUI 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33740939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com