我試圖創建與模塊組織的閃亮應用程序包。我找不到任何幫助,我可以找到的每個示例都不使用模塊。有人可以給我一個例子嗎?與模塊作爲包閃亮的應用程序
回答
你將不得不確保ui
部分以及模塊的server
部分獲得出口在你的包
#' @export
myModuleUI <- function(id){
ns = NS(id)
plotOutput(ns("plot"))
}
#' @export
myModuleServer <- function(input, output, session){
output$plot <- renderPlot({hist(rnorm(100))})
}
從加載你的packae腳本,那麼你可以使用
library(myPackage)
shinyApp(
fluidPage(myModuleUI("someId")),
function(input,output,session){
callModule(myModuleServer, "someId")
}
)
說到記錄你的模塊,沒有這樣做的標準方法。大多數軟件包使用最少的功能類文檔和示例應用程序 - 請參閱Joris Meys的答案。
不寫那個便利包裝,你可以進入各種環境問題。 –
我目前在我的包裝中使用了類似的圖案,目前一切正常。請你詳細說明這可能會導致麻煩嗎? –
我在包中使用了一個類似的模式,但是當使用嵌套模塊時,它有時會混淆id鏈接。所以我刪除了它。我必須補充一點,我使用構造函數來創建基於不同模塊的類似佈局的應用程序,並允許用戶使用字符串指定他們想要的模塊。所以我的生活有點複雜,那就是問題的出現。 –
Gregor de Cillia爲您提供了一個如何構建UI和服務器功能並導出的好例子。在包裝完全起作用之前需要考慮一些其他事項:
- 正如Gregor所說,導出這些功能將使它們可供最終用戶使用。
- 確保將
shiny
包添加到說明文件中的取決於列表中(另請參閱Package Dependencies in the R manual)。與導入shiny
軟件包相比,將其添加到依賴列表中會更有意義,因爲所有閃亮功能也應該可供最終用戶使用,而不僅僅是您的模塊功能。該標準現在使用導入而不是依賴,但在這種情況下,Depends更有意義。
爲了讓您的軟件包一流,請添加一個小例子來說明您的模塊。就拿格雷戈爾的例子,那麼你的文件夾inst/examples/moduleExample/
添加到您的包,並在那裏你有一個文件app.R
如下:
shinyApp(
fluidPage(myModuleUI("someId")),
function(input,output,session){
callModule(myModuleServer, "someId")
}
)
現在,添加例如moduleDemo
函數,演示瞭如何使用該模塊。
#' @export
moduleDemo <- function(){
loc <- system.file("examples","moduleExample",
package = "myPackage")
shinyAppDir(loc)
}
對於這個例子,使用路徑'examples/moduleExample/app.R'(和'shinyAppDir')也許是個好主意。原因是[這個PR](https://github.com/rstudio/shiny/pull/1458) –
@GregordeCillia真的,相應地適應並感謝提示。 –
- 1. 部署打包閃亮閃亮的應用程序服務器
- 2. 運行閃亮的應用程序內運行閃亮的應用程序
- 3. 使用RStudio作爲僞閃亮的應用程序
- 4. 與dygraphs包閃亮
- 5. 閃亮的應用程序崩潰,問題與傳單閃亮RStudio
- 6. dplyr函數與閃亮的應用程序與desc的問題
- 7. 閃亮的應用程序 - 尋呼
- 8. plotGoogleMaps閃亮的應用程序
- 9. 閃亮的應用程序,刷子功能結合滑塊
- 10. 如何包含代碼塊閃亮的應用程序幫助文件()
- 11. 使用閃亮的HTML應用程序Qt應用程序
- 12. 閃亮的應用程序桌面部署包問題?
- 13. R閃亮應用程序CI
- 14. 閃亮:如何在閃亮的應用程序中添加響應欄
- 15. rCharts:地塊閃亮的應用
- 16. 試圖插入模式R閃亮的應用程序在Slidify
- 17. 通過點擊不同的閃亮應用程序中的鏈接打開一個閃亮的應用程序?
- 18. observeEvent在模塊中使用的閃亮功能不起作用
- 19. 主辦一個閃亮的應用程序沒有閃亮的服務器
- 20. 無法在閃亮的服務器上部署閃亮的應用程序
- 21. 閃亮的服務器上閃亮的應用程序不要求SSH密碼
- 22. 導入CSV以製作直方圖的閃亮應用程序
- 23. 閃亮的應用程序不工作Shinyapps.io
- 24. 調用閃亮的應用與R
- 25. r dygraph和閃亮的模塊
- 26. 閃亮的do.call,lapply和模塊
- 27. 動態添加閃亮的模塊
- 28. 應用程序與模塊,其中包含不同的targetSdkVersion,應用程序
- 29. 閃亮反應與IncludeMarkdown?
- 30. Android應用程序與Android庫項目作爲外部模塊
模塊是功能。您可以像構建包時的功能一樣定義模塊功能。 (這在https://shiny.rstudio.com/articles/modules.html中建議)。你可以看看這個問題,以獲得關於這種包的機制的一些指導https://stackoverflow.com/questions/37830819/developing-shiny-app-as-a-package-and-deploying-it-to-shiny服務器 – Benjamin