我正在使用navbarPage使用sidebarPanel.
我想"声明"只有一个小部件(本例中为radioButtons),然后将每个标签链接到"main"sidebarPanel.如您所见,tab2对相对radioButtons没有反应.我的项目结构更复杂,需要为某些选项卡设置相同的sidebarPanel,并为某些其他选项卡设置特定的sidebarPanel.这是我正在使用的代码:
library(shiny)
server=function(input, output) {
output$plot1 = renderPlot({plot(runif(input$rb))})
output$plot2 = renderPlot({plot(runif(input$rb))})
}
ui = shinyUI(navbarPage("Test multi page",
tabPanel("tab1",
sidebarLayout(
sidebarPanel(
radioButtons("rb","Nr of obs:",choices = c("50 obs"=50,"300 obs"=300))
),
mainPanel(plotOutput("plot1"))
)
),
tabPanel("tab2",
sidebarLayout(
sidebarPanel(
radioButtons("rb","Nr of obs:",choices = c("50 obs"=50,"300 obs"=300))
),
mainPanel(plotOutput("plot2"))
)
)
))
shinyApp(ui = ui, server = server)
runApp("app")
Run Code Online (Sandbox Code Playgroud)
问题是您有两个输入小部件设置inputId为rb。如果将代码更改tab2为:
radioButtons("rb2","Nr of obs:",choices = c("50 obs"=50,"300 obs"=300))
Run Code Online (Sandbox Code Playgroud)
然后将其连接output$plot2到server:
output$plot2 = renderPlot({plot(runif(input$rb2))})
Run Code Online (Sandbox Code Playgroud)
该应用程序将会运行。
我认为发生这种情况的原因是因为闪亮会记住小部件的值,即使它们不可见。因此,您很容易得到一个rbin值tab1和一个不同的rbin值tab2。在这种情况下,不清楚应该绘制什么,因此第二个rb被忽略。
| 归档时间: |
|
| 查看次数: |
2880 次 |
| 最近记录: |