我正在尝试为我的Shiny应用程序添加一个“保存输入”功能,其中保存的输入将保存在DT数据表中。如果用户单击“添加”按钮,则会将输入附加到数据表中。然后,用户可以通过选择一行并单击“删除”按钮来从此数据表中删除一行。我还需要将此表的值保存为全局变量,以便它在所有会话中保持持久性。
以下是示例代码。当我关闭会话时,表格(`this_table`)被正确更新,但是在应用程序期间这些更改不会实时显示。我尝试将这些输入按钮都放入`eventReactive`函数中,但是当其中一个按钮被选择多次时,这种方法不起作用。
有什么想法吗?
全局表:
`this_table = data.frame(bins = c(30, 50), cb = c(T, F))`
Shiny应用程序代码:
以下是示例代码。当我关闭会话时,表格(`this_table`)被正确更新,但是在应用程序期间这些更改不会实时显示。我尝试将这些输入按钮都放入`eventReactive`函数中,但是当其中一个按钮被选择多次时,这种方法不起作用。
有什么想法吗?
全局表:
`this_table = data.frame(bins = c(30, 50), cb = c(T, F))`
Shiny应用程序代码:
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30),
checkboxInput("cb", "T/F"),
actionButton("add_btn", "Add"),
actionButton("delete_btn", "Delete")
),
mainPanel(
DTOutput("shiny_table")
)
)
)
server <- function(input, output) {
observeEvent(input$add_btn, {
t = rbind(data.frame(bins = input$bins,
cb = input$cb), this_table)
this_table <<- t
})
observeEvent(input$delete_btn, {
t = this_table
print(nrow(t))
if (!is.null(input$shiny_table_rows_selected)) {
t <- t[-as.numeric(input$shiny_table_rows_selected),]
}
this_table <<- t
})
output$shiny_table <- renderDT({
datatable(this_table, selection = 'single', options = list(dom = 't'))
})
}
shinyApp(ui = ui, server = server)