首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为golem框架模块化目录选择器?

如何为golem框架模块化目录选择器?
EN

Stack Overflow用户
提问于 2020-06-12 16:12:18
回答 1查看 111关注 0票数 0

我一直在开发一个闪亮的应用程序,我想将其集成到golem框架中。我使用了shinyFiles package中的一个目录选择器,但我在尝试模块化它时遇到了一些问题(这款闪亮的应用程序不再显示我的目录)。不得不说,我是一个闪亮的应用程序开发的初学者。任何建议都是非常感谢的:

代码语言:javascript
复制
#' datadir UI Function
#'
#' @description A shiny Module.
#'
#' @param id,input,output,session Internal parameters for {shiny}.
#'
#' @noRd
#'
#' @importFrom shiny NS tagList
mod_datadir_ui <- function(id){
   ns <- NS(id)
   tagList(
     shinyDirButton("datadir", "Raw data directory",
                    "Please select the folder containing the raw accelerometer data")
   )
}

#' datadir Server Function
#'
#' @noRd
mod_datadir_server <- function(input, output, session){
   ns <- session$ns
   volumes <- c(Home = fs::path_home(), "R Installation" = R.home(),
                getVolumes()())

   # DATADIR
   shinyDirChoose(input, "datadir", roots = volumes, session = session,
                  restrictions = system.file(package = "base"))
}

## To be copied in the UI
# mod_datadir_ui("datadir_ui_1")

## To be copied in the server
# callModule(mod_datadir_server, "datadir_ui_1")
EN

回答 1

Stack Overflow用户

发布于 2020-06-12 16:59:36

为id添加ns

代码语言:javascript
复制
#'
#' @description A shiny Module.
#'
#' @param id,input,output,session Internal parameters for {shiny}.
#'
#' @noRd
#'
#' @importFrom shiny NS tagList
mod_datadir_ui <- function(id){
  ns <- NS(id)
  tagList(
    shinyDirButton(ns("datadir"), "Raw data directory",
                   "Please select the folder containing the raw accelerometer data")
  )
}

#' datadir Server Function
#'
#' @noRd
mod_datadir_server <- function(input, output, session){
  ns <- session$ns
  volumes <- c(Home = fs::path_home(), "R Installation" = R.home(),
               getVolumes()())

  # DATADIR
  shinyDirChoose(input, "datadir", roots = volumes, session = session,
                 restrictions = system.file(package = "base"))
}

## To be copied in the UI
# mod_datadir_ui("datadir_ui_1")

## To be copied in the server


library(shiny)
library(shinyFiles)

ui <- fluidPage(
  mod_datadir_ui('jean')
)

server <- function(input, output, session) {
  callModule(mod_datadir_server, "jean")
}

shinyApp(ui, server)

看起来它现在起作用了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62340193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档