Я изо всех сил пытаюсь заставить процесс наблюдающего события запускаться только один раз после того, как это вызывает событие - нажатие кнопки. Это иллюстрирует:
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
без удачи. Благодарен за предложения.