shinny:renderUI和shinny:ui输出以生成新的menuItem和新的输出,但选项卡项不显示

shinny:renderUI和shinny:ui输出以生成新的menuItem和新的输出,但选项卡项不显示,r,shiny,shinydashboard,tabitem,R,Shiny,Shinydashboard,Tabitem,我想基于actionButton创建一个新的菜单项和一个新的plotOutput,新渲染的plotOutput将根据提交的值显示一个绘图。我已成功生成带有提交值的menuItem和NumericiInput小部件,但未显示绘图和相应的tabItem。 以下是工作流程: 提交->渲染带有输入对象和plotOutput的菜单项->将根据渲染的输入对象显示plotOutput 第二个步骤成功,但其余步骤不起作用,代码如下所示: library(shiny) library(shinydashboard

我想基于actionButton创建一个新的菜单项和一个新的plotOutput,新渲染的plotOutput将根据提交的值显示一个绘图。我已成功生成带有提交值的menuItem和NumericiInput小部件,但未显示绘图和相应的tabItem。
以下是工作流程:

提交->渲染带有输入对象和plotOutput的菜单项->将根据渲染的输入对象显示plotOutput

第二个步骤成功,但其余步骤不起作用,代码如下所示:

library(shiny)
library(shinydashboard)

## ============================================ Define ui ==================================================

header1 <- dashboardHeader(
  title = "My Dynamic Menu"
) #dashboardHeader

# DYNAMIC UI
sidebar1 <- dashboardSidebar(
  sidebarMenu(
    menuItem('aa',tabName = 'aa')
  ) ,
  sidebarMenuOutput('bb')
) #dashboardSidebar
#
body1 <- dashboardBody(
  tabItems(
    tabItem(tabName = 'aa',
            numericInput('num_input', 'number', value = 5), 
            actionButton('submit','Submit')),
    tabItem(tabName = "main", uiOutput('eee')) # put a tabItem here
  ) #tabItems
) #dashboardBody

ui <- dashboardPage(header1, sidebar1, body1)

server <- function(input, output, session) {
  dt<-eventReactive(input$submit, {
    input$num_input * 5
  })
  
  observeEvent(input$submit, {
    output$bb<-renderMenu({
      sidebarMenu(
        menuItem("Main", tabName = "main", 
                 numericInput('ddd', 'input value', value = dt()),
                 numericInput('ggg', 'another input', value=dt()+5))
      )
    })
    
    output$eee<-renderUI({
      fluidRow(
        p('hello'),
        plotOutput('fff')
      )
    })
  })
  
  
   observeEvent({
     input$ddd
     input$ggg
   },{
       output$fff<-renderPlot({
       plot(1:input$ddd, main=as.character(input$ggg))
     })
   })
  
} #server
## ============================================ Run application ============================================
shinyApp(ui, server)

库(闪亮)
图书馆(shinydashboard)
##===================================================================定义用户界面==================================================

header1要与tabItem链接,menuItem应该只包含menuSubItem。如果删除两个数字输入(ddd和ggg),则当您单击新创建的主菜单项时,主页面将被激活。混合导航和输入不是一个好主意

您最好将输入移动到主选项卡项中,或将其放在侧边栏中的单独面板中(不在菜单中)

为ui中的输入添加了uiOutput

# DYNAMIC UI
sidebar1 <- dashboardSidebar(
  sidebarMenu(
    menuItem('aa',tabName = 'aa')
  ) ,
  sidebarMenuOutput('bb'),
  uiOutput("inputs")
) #dashboardSidebar
#动态用户界面

sidebar1要与tabItem链接,menuItem应该只包含menuSubItem。如果删除两个数字输入(ddd和ggg),则当您单击新创建的主菜单项时,主页面将被激活。混合导航和输入不是一个好主意

您最好将输入移动到主选项卡项中,或将其放在侧边栏中的单独面板中(不在菜单中)

为ui中的输入添加了uiOutput

# DYNAMIC UI
sidebar1 <- dashboardSidebar(
  sidebarMenu(
    menuItem('aa',tabName = 'aa')
  ) ,
  sidebarMenuOutput('bb'),
  uiOutput("inputs")
) #dashboardSidebar
#动态用户界面

谢谢你的解决方案,我找到了这篇文章,它将帮助解决这个问题,是的,很好。我有这样的想法。很高兴它帮助了你谢谢你的解决方案,我找到了这篇文章,它将帮助解决这个问题,是的,很好的观点。我有这样的想法。很高兴它帮助了你
output$bb<-renderMenu({
      message("bb")
      sidebarMenu(
        menuItem("Main", tabName = "main")
      )
    })