niszetの日記

細かい情報を載せていくブログ

ShinyLiveでは、tabsetPanelを使って同じsideBarPanelを指定するとidの重複のエラーが発生する

Shinyでは問題ないことが、ShinyLiveでは問題になることがままあるため注意。

問題はタイトルに書いた通り。具体的にはこういうコードで、ページにtabを入れて切り替えられるようにしたさいに、それぞれ同じsidebarを使いたいということで同じものを指定している。

  tabsetPanel(
    tabPanel(tab_calendar_display,
            sidebarLayout(
              sidebarPanel =  sidebar1,
              mainPanel = mainPanel(
               fluidRow(
                  column(
                    width = 12,
                    calendarOutput("my_calendar")
                  )),
              ),
              position="right")),
    tabPanel(tab_map_display,
            sidebarLayout(
              sidebar1,
              mainPanel(
                h2("EventMap"),
                leafletOutput("mymap")
              ),"right")
    ),
    id = "myTabs"
  )

Shinyでは特に問題なく動作するが、ShinyLiveではエラーとなる(ShinyLiveではエラーがなく表示もされないということが多々あるので、エラーが表示されるだけマシという話はある)

今のところ回避方法は見つかっていないため、同じ構成でも別のsidebarとして作るべきかもしれない。あまり深追いはしていないため、何かわかれば別途投稿します。