gpt4 book ai didi

R Shiny observeEvent继续触发

转载 作者:行者123 更新时间:2023-12-04 01:54:42 24 4
gpt4 key购买 nike

我正在努力让 observeEvent 进程在触发事件后仅运行一次 - 单击按钮。这说明:

require(shiny)

ui = fluidPage(
textInput("input_value", '1. input a value. 2. click button. 3. input another value', ''),
actionButton("execute", 'execute'),
textOutput('report')
)

server = function(input, output, session) {
observeEvent(input$execute, {
output$report = renderText(input$input_value)
})
}

shinyApp(ui = ui, server = server, options = list(launch.browser = T))

您会看到,单击按钮一次后,textOutput 会响应 textInput 更改而不是按钮单击。

我试过这种方法:

server = function(input, output, session) {
o = observeEvent(input$execute, {
output$report = renderText(input$input_value)
o$destroy
})
}

没有影响。我也尝试过使用 isolate 函数,但没有成功。感谢您的建议。

最佳答案

您的 isolate() 调用可能环绕在 renderText() 而不是 input$input_value 周围。这应该为你做:

require(shiny)

ui = fluidPage(
textInput("input_value", '1. input a value. 2. click button. 3. input another value', ''),
actionButton("execute", 'execute'),
textOutput('report')
)

server = function(input, output, session) {
observeEvent(input$execute, {
output$report = renderText(isolate(input$input_value))
})
}

shinyApp(ui = ui, server = server, options = list(launch.browser = T))

关于R Shiny observeEvent继续触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51201127/

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