0
使用操作按鈕,我想將一些預設值加載到我閃亮的應用程序的UI元素中,然後從更新的UI中觸發輸出。在下面的應用程序中有兩個按鈕。 Print
將在輸出$ txt中輸出任何內容。 preset
按鈕應使用預設值更新UI元素,然後將此值輸出到輸出。所需的功能相當於按preset
,然後按print
。Shiny UI元素的反應性順序
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput('txt','Text',value = ''),
actionButton('print','Print'),
actionButton('preset','preset')
),
mainPanel(
verbatimTextOutput("outText")
)))
server <- function(input, output,session) {
values <- reactiveValues(text='')
observeEvent(input$print,{
values$text <- input$txt
})
observeEvent(input$preset,{
presetVal <-'Some preset value'
session$sendInputMessage('txt', list(value = presetVal))
})
output$outText <- renderPrint({
print(values$text)
})
}
shinyApp(ui, server)
那麼,爲什麼不這樣做呢?
observeEvent(input$preset,{
presetVal <-'Some preset value'
session$sendInputMessage('txt', list(value = presetVal))
values$text <- presetVal
})
我的應用程序具有很多動態UI元素和也是模塊化的濾波器其結果是在輸出中使用的濾波的數據幀的。因此,爲了獲得正確的過濾數據幀,需要在創建輸出前刷新UI元素本身。如果這是有道理的。那麼是否可以模仿按下preset
後跟print
的動作?