我正在开发一个Shiny应用程序,它有两个组件Sankey图和一个动作按钮,单击按钮时弹出“SaveMsg”对话框。闪亮的应用程序showModal不会弹出renderSankeyNetwork
我看到意外的行为,其中,如果我在一个仪表板中的用户actionbutton和Sankeyvisualization,点击操作按钮,仪表板屏幕变灰。
但是,如果我评论Sankey代码并仅保留UI上的Action按钮,则Action按钮会按预期显示弹出消息“save successfull”。 如果我评论操作按钮代码并仅保留UI中的Sankey代码,则可以在仪表板上看到sankey输出。
Sankey代码和动作按钮都按预期单独工作,但是如果我将两个都放在一个仪表板动作按钮灰显的屏幕仪表板屏幕上。
我还附上样本代码 -
library(shiny)
library(networkD3)
library(shinydashboard)
value <- c(12,21,41,12,81)
source <- c(4,1,5,2,1)
target <- c(0,0,1,3,3)
edges2 <- data.frame(cbind(value,source,target))
names(edges2) <- c("value","source","target")
indx <- c(0,1,2,3,4,5)
ID <- c('CITY_1','CITY_2','CITY_3','CITY_4','CITY_5','CITY_6')
nodes <-data.frame(cbind(ID,indx))
ui <- dashboardPage(
dashboardHeader(
),
dashboardSidebar(disable = TRUE),
dashboardBody(
fluidPage(
actionLink("savebtn", "Save button")
,sankeyNetworkOutput("simple")
)
)
)
server <- function(input, output,session) {
# Show modal when button is clicked.
observeEvent(input$savebtn, {
showModal(modalDialog(
title = "Save successful"))
})
output$simple <- renderSankeyNetwork({
sankeyNetwork(Links = edges2, Nodes = nodes,
Source = "source", Target = "target",
Value = "value", NodeID = "ID"
,units = "SSN")
})
}
shinyApp(ui = ui, server = server)
你能提供一个[可重现的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? – jsb
嗨塞缪尔,我更新了完整的可重复代码,点击保存按钮仪表板时灰色了,但是其他操作按钮和sankeyNetworkoutput在用户界面中评论其他时分别显示输出。 –
错误不依赖于您的特定sankey网络,因此您可以使用sankeyNetwork的帮助页面中的简单网络... – shosaco