簡體   English   中英

updateTabItems 的問題。 在 R shiny 與魔像

[英]problem with updateTabItems. in R shiny with Golem

我在 R 中使用 golem 構建應用程序。 我正在嘗試通過一個按鈕將 TabItem 從 tabItem (acceuil) 更改為另一個 tabItem (Rating)

這是模塊“Acceuil”

mod_Accueil_ui <- function(id){
  ns <- NS(id)
  tagList(
    actionButton(ns("do"), "Click Me")
 
  )
}
    
#' Accueil Server Functions
#'
#' @noRd 
mod_Accueil_server <- function(id){
mod_Accueil_server <- function(id){
  moduleServer( id, function(input,output,session){
   
     ns <- session$ns
    
     observeEvent(input$do, {
      updateTabItems(session = session,inputId = "menu",selected = "Rating")
      
    })
   
  })
}

似乎 mod_Acceuil 無法識別 inputId 並在 updateTabItems 中選擇。 這是 app_ui 部分

sidebarMenu(id="menu", 
                tags$head(                
                menuItem("Rating", tabName = "Rating"),
                menuItem("Accueil", tabName = "Accueil")

))
tabItems(
    tabItem("Rating",mod_calcul_ui("calcul_ui_1") ),
    tabItem("Accueil",mod_Accueil_ui("Accueil_1") )
    )

所以問題是當我點擊“點擊我”按鈕時頁面沒有改變

未經測試:嘗試將父母的 session 傳遞給updateItems 這需要將父級的 session 添加到服務器模塊:

mod_Accueil_server <- function(id, parent) moduleServer(id, 
    function(input,output,session) {
        ns <- session$ns
        observeEvent(input$do, {
           updateTabItems(
               session=parent,  # not the module's session
               inputId="menu",selected = "Rating"
           )
        })
    })

然后在主服務器function:

server <- function(input,output,session) {
    mod_Accueil_server(id="Accueil", parent=session)
    # ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM