怎麼樣使用renderUI
命令是這樣的?
library(shiny)
ui <- fluidPage(
# Application title
titlePanel("Test App"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
checkboxGroupInput("City",label = "Choose a city",
choices = c("London","Paris","Hamburg"),
selected="London")
),
# Show a plot of the generated distribution
mainPanel(
uiOutput("ReactiveUI"),
textOutput("Final")
)
)
)
server <- function(input, output) {
output$ReactiveUI <- renderUI(
selectInput("ReactiveUI",
label="Choose one of your choices",
choices = input$City,
selected="London"))
output$Final <- renderText({paste("you selected",input$ReactiveUI)})
}
# Run the application
shinyApp(ui = ui, server = server)
這工作,因爲通過使用renderUI
命令,我們可以訪問存儲在input$City
值,因爲我們是在server.r
文件。
編輯:
爲了詳細說明renderUI
,與uiOutput
這個命令對(它的ui.R對口,像renderText
是textOutput
)。所述renderUI
命令移動的UI元素的施工從ui.R
到server.R
。這很有用,因爲我們不能在ui.R
中做很多「編程」,但我們可以在server.R
。我們也無法訪問存儲在input
列表中的任何內容,而在ui.R
中。簡而言之,通過在server.R
中創建我們的UI元素,我們允許我們的應用程序的UI響應其他用戶輸入。
在這個例子中,我們採取我們的下拉菜單的選擇設定由checkboxGroupInput
嘿邁克爾選擇的輸入解決方案完美的作品看其他投入的能力優勢!我是rshiny的新手,所以如果您能詳細闡述一下在這個特定情況下使用的renderUI的概念,那麼這將對我未來的工作有所幫助。 – bakas
只是一個跟進的問題,有沒有什麼辦法,我可以展示倫敦作爲輸出即輸出選擇列表默認情況下應顯示倫敦默認城市,因此應該呈現的文本,用戶則可以改變選擇列表輸出選項到如果他/她希望看到輸出其他一些城市 – bakas
喜@bakas其他任何城市,我已經增加了大約'renderUI'更詳細一點,我還編輯我的代碼有'selected'參數在我的兩個輸入。我認爲它的行爲是你想要的。 –