我正在建立一个概念证明,用户可以在一个选项卡上编辑一个数据框,然后在另一个选项卡上查看它。我希望用户能够使用相同的基本数据查看许多不同的可视化效果,因此将所有内容都放在一个选项卡上不会对我有用。
到目前为止,我的解决方案是拥有一个写入全局范围的“保存按钮”,以便可以跨选项卡访问数据。但是,由于懒惰,只有在用户尚未单击选项卡之前(即发亮的人不知道该选项卡上的任何更改)之前,此选项才起作用。
对于以下代码,会发生以下情况: 1.使用滑块过滤数据 2.按保存 3.转到第二个标签(有效) 4.重复步骤1和2 5.返回第二个标签(无效)
有人知道如何解决这个问题吗?
服务器代码
function(input, output){
# on initilization
master$date <- Sys.time()
master$dataframe <- mtcars
output$tab1<-renderDataTable({
df<-master$dataframe
display <- df%>%filter(disp > input$slider)
temp<<-display
})
observeEvent(input$save, {
master$date <<- Sys.time()
master$dataframe <<- temp
})
#tab two
output$tab2 <- renderDataTable({
master$dataframe
})
}
UI代码
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard")),
menuItem("Widgets", icon = icon("th"), tabName = "widgets",
badgeLabel = "new", badgeColor = "green")
)
)
body <- dashboardBody(
tabItems(
tabItem(tabName = "dashboard",
sliderInput("slider", "Choose a number", 0, 200, 50),
dataTableOutput("tab1"),
actionButton("save", "Save Filter")
),
tabItem(tabName = "widgets",
dataTableOutput("tab2")
)
)
)
dashboardPage(
dashboardHeader(title = "Simple tabs"),
sidebar,
body
)