2017-07-07 8 views
0

モジュールでshinyFilesパッケージを使用する際に問題があります。私はそれが正常に動作するモジュールなしでそれを使用しているとき。私はモジュール内でそれを使用していたとき、私は(他のスレッドが何も肯定的な答えを持っていない)ディレクトリに飛び込むことができません。モジュール内のshinyFilesパッケージ

#' @export 
dirModule = function(input, output, session, fileRoot = NULL) { 
    root = c(C = "/") 
    shinyFileChoose(input, session$ns('files'), roots = root, session = session) 
    shinyDirChoose(input, session$ns("directory"), session=session, roots = c(home = '/home', root = '/'), filetypes=c('')) 
    shinyFileSave(input, session$ns("fileSave"), roots = root, session = session) 

    observeEvent(input$files, { print(parseFilePaths(root, input$files)$datapath) }) 
    observeEvent(input$directory, { print(parseDirPath(root, input$directory)) }) 
    observeEvent(input$fileSave, { print(parseSavePath(root, input$fileSave)$datapath) }) 
} 

#' @export 
dirModuleUI = function(id) { 
    ns = NS(id) 

    fluidPage(
    fluidRow(
     shinyFilesButton(ns('files'), label='File select', title='Please select a file', multiple=T), 
     shinyDirButton(ns("directory"), label="Directory select", title = "Select directory", FALSE), 
     shinySaveButton(ns("fileSave"), label = "File save", title = "Save file as", filetype=list(text='txt')) 
    ) 
) 
} 
+0

'shinyFiles' [内部的にモジュールを使用しているようです](https://github.com/thomasp85/shinyFiles/blob/master/R/filechoose.R#L164)。したがって、IDを直接使用することで問題を解決することができます( 'shinyFileChoose(input、 'files'、...)など)。 shinyjsの同様の問題については、[こちらのディスカッション](https://github.com/daattali/shinyjs/issues/133)を参照してください。 –

+0

少し深く掘り下げました。あなたのコードが 'shinyFiles'(私がインストールしたばかり)のcranバージョンで動作するようです。 githubバージョンを使用している場合は、[here](https://github.com/thomasp85/shinyFiles/pull/58)のようにIDを割り当てるときに 'session $ ns'を省略する必要があります。 –

答えて

0

私は同じ問題を持っていたし、GitHubのバージョンを使用することで解決。

最初にdevtoolsパッケージをinstall.packages('devtools')でインストールしてから、devtools::install_github("thomasp85/shinyFiles")を使用して最新のshinyFilesパッケージをインストールできます。

その後、モジュールサーバー機能ですべてのセッション$ nsコールを取り除くだけです。

関連する問題