【发布时间】:2016-06-25 13:21:26
【问题描述】:
我有一个我开发的闪亮应用程序的简化版本。我想要的是能够在按下 Frame1 动作按钮时显示 dataframe1 并隐藏 dataframe2 并在按下 Frame2 动作按钮时再次显示 dataframe2 并隐藏 dataframe1。我显然需要在同一位置打印表格。感谢您的帮助和您的时间。
服务器.R
shinyServer(function(input, output, session) {
data_for_use <- reactiveValues(d=NULL)
observeEvent(input$actForFrame1,{
data_for_use$dataFrame1 <- data.frame(firstColumn= c(1,3,5),secondColumn=c(2,4,6))})
observeEvent(input$actForFrame2,{
data_for_use$dataFrame2 <- data.frame(firstColumn= c(10,30,50),secondColumn=c(20,40,60))})
output$dataFrame1 <- DT::renderDataTable({
DT::datatable(data_for_use$dataFrame1)
})
output$dataFrame2 <- DT::renderDataTable({
DT::datatable(data_for_use$dataFrame2)
})
observeEvent(input$actForFrame1,{
show("dataFrame1")
hide("dataFrame2")
})
observeEvent(input$actForFrame2,{
show("dataFrame2")
hide("dataFrame1")
})
})
ui.R
library(shinyjs)
library(shiny)
library(DT)
shinyUI(pageWithSidebar(
headerPanel("Test"),
sidebarPanel(
actionButton("actForFrame1", "Frame1"),
actionButton("actForFrame2", "Frame2")
),
mainPanel(
useShinyjs(),
wellPanel("Test",
conditionalPanel(condition = "input.actForFrame1",
DT::dataTableOutput("dataFrame1")
),
conditionalPanel(condition= "input.actForFrame2",
DT::dataTableOutput("dataFrame2"))
)
)
)
)
【问题讨论】:
-
对我来说很好。您是否尝试过清除会话并确保没有加载其他包? shinyjs 显示/隐藏仍然可以正常工作
-
我尝试重新启动 R studio,上面发布的示例运行良好。然后我尝试运行我开发的实际闪亮的应用程序。它不起作用,然后也无法正确运行上面的示例。似乎我的实际应用程序正在做一些使显示/隐藏损坏的事情(我不确定有问题的部分是否是显示隐藏,但我认为是这样)我在实际应用程序中使用的其他包是 DT、ggplot2、affy、GEOquery、shinyjs闪亮的图书馆本身。有什么可以推测的吗?
-
没有定义全局变量,只是反应值..
-
我唯一的猜测是其他一些包定义了
show或hide函数。也许尝试致电shinyjs::show()和shinyjs::hide()。如果不是,那我不知道,你必须进一步调试它 -
订单
library(shinyjs)是否被称为物质-DT或shiny是否屏蔽show/hide