gpt4 book ai didi

shiny - 多次重新渲染相同的 UI

转载 作者:行者123 更新时间:2023-12-02 20:56:04 25 4
gpt4 key购买 nike

我有这个简单 Shiny 的应用程序,带有两个操作按钮。 “渲染”按钮渲染 slider 输入控件,而“删除”按钮则删除相同的 slider 输入。第一次工作正常,但第二次尝试重新渲染相同的 slider 输入不起作用。任何想法或解释代码可能有什么问题?

这是代码:

    ui <- fluidPage(
actionButton("render", "Render"),
actionButton("remove", "Remove"),
uiOutput("moreControls")
)

server <- function(input, output) {
observeEvent(input$render, {
if (input$render > 0) {
output$moreControls <- renderUI({
tagList(
sliderInput("n", "N", 1, 1000, 500)
)
})
}
})
observeEvent(input$remove, {
if (input$remove > 0) {
removeUI(
selector = "div[id='moreControls']"
)
}
})

}
shinyApp(ui, server)

最佳答案

您可以将控件设置为 NULL 以将其删除。请参阅代码。

library(shiny)  

ui <- fluidPage(
actionButton("render", "Render"),
actionButton("remove", "Remove"),
uiOutput("moreControls")
)

server <- function(input, output) {

rv <- reactiveValues()

observeEvent(input$render, { rv$action <- 'render' })
observeEvent(input$remove, { rv$action <- 'remove' })

output$moreControls <- renderUI({

if (is.null(rv$action)) {return(NULL)}

if(rv$action == 'render'){
sliderInput(inputId = "n",label = "N", min = 1, max = 1000, value = 500)
} else {
return(NULL)
}
})
}
shinyApp(ui, server)

关于shiny - 多次重新渲染相同的 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40154498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com