renderUIを使用するモジュール化された光沢のあるコードのMWEを提供できますか?私はそれに従う例が欲しい。これを光沢のあるモジュールに変換するには
ここでは、これについて説明する優れたチュートリアルがあります。https://shiny.rstudio.com/articles/modules.htmlしかし、uUIやサーバーでのrenderUIコンポーネントのモジュール化を統合する方法は示されていません。ここで
は、私がこれまで試したものです:
私のUIコードでは、私が持っていた:私のサーバーコードで
htmlOutput("selectionUI")
を、私が持っていた:今
output$selectionUI <- renderUI({
req(input$Filter)
selectInput(
inputId = "Selection",
label = "Selection",
choices = get("qlist", envir = get(input$source))[[input$Filter]]$responses)
})
私は希望これは時には繰り返される要素なので、モジュール化するのが好きですが、いったん完了したら、それを実際にui/serverコードに挿入する方法がわかりません。ここで
は、私が試したものです:
selectionChooserUI <- function(id) {
ns <- NS(id)
uiOutput(ns('controls'))
}
selectionChooser <- function(input, output, session, data, sourcedata, filter) {
output$selectionUI <- renderUI({
req(input$Filter)
ns <- session$ns
selectInput(
inputId = ns('Selection'),
label = 'Selection',
choices = get('qlist', envir = get(input[[sourcedata()]]))[[input[[filter()]]]]$responses
)
})
}
私はそれは、現在私が取得しています苦情"output" is missing with no default
ことをdiplayしてもらうために、私のUIコードに入れなければならないのですか?
私が使用して、私のUIコードで、現在それを呼んでいる:
selectionChooserUI("selection")
あなたは 'selectionChooserUI'であなたの' output'を 'controls'と名づけました。あなたはあなたのデータを持っていないのでテストしていません。ですから、 'selectionChooser'で' $ control'を出力する必要があります。 – user5029763
そして、あなたは 'input $ Filter'と' input [[filter()]]の代わりに 'filter()'を使うべきだと思います。 – user5029763
ありがとう@ user5029763私はこれらの変更を加え、同じエラーが発生しました。 'エラー:引数 'output'がデフォルトなしで欠落しています。 ' –