2
我想在单击按钮时使用uiOutput()
和plotOutput()
修改UI。如果它不等待事件并立即更改内容,则一切正常。当按钮被点击时,我应该改变什么使output$body.on.button
与output$body.immediately
具有相同的输出?R Shiny:输出功能在eventReactive()内不起作用
server.R:
shinyServer(function(input, output, session) {
output$plot <- renderPlot({plot(1:5)})
output$body.ui <- renderUI({tags$p('This works only within renderUI')})
output$body.on.button <- eventReactive(input$goButton, {
switch(
input$select,
"text" = 'This works within both functions',
"ui" = uiOutput("body.ui"), # This doesn't work
"plot" = plotOutput("plot") # This doesn't work
)
})
output$body.immediately <- renderUI({
switch(
input$select,
"text" = 'This works within both functions',
"ui" = uiOutput("body.ui"), # This works
"plot" = plotOutput("plot") # This works
)
})
})
ui.R:
library(markdown)
shinyUI(
navbarPage(
"Title",
tabPanel(
"First element",
fluidRow(
column(
4,
wellPanel(
selectInput("select", "Select", c('text', 'ui', 'plot')),
actionButton("goButton", "Go!")
) # end of wellPanel
), # end of column
column(
4,
uiOutput("body.immediately")
), # end of column
column(
4,
uiOutput("body.on.button")
) # end of column
) # end of fluidROw
) # end of tabPanel
) # end of navbarPage
) # end of shinyUI
我也试着功能observeEvent()
,但它并没有帮助。
谢谢!重复是故意创建的,以确保它能正常工作(但我不知道它会引起额外的问题)。该解决方案在函数'renderUI()'中。现在它工作正常 –