在我的server.R文件中,我有一个被叫的myNet生成一个visNetwork.在我的ui.R,我有多个选项卡面板,理想情况下将有不同的输入小部件,影响visNetwork.
是否可以重复使用相同的绑定?
目前,当我尝试运行类似于下面的代码时,我收到一个错误:Uncaught Duplicate binding for ID vis.
server.R myNet <- reactive({
nodes <- df_nodes
edges <- df_edges
visNetwork(nodes, edges, height = '800px')
})
output$vis <- renderVisNetwork(
myNet()
)
Run Code Online (Sandbox Code Playgroud)
ui.R ...
tabPanel("First Panel",
sidebarLayout(
sidebarPanel(
sliderInput("input1", "Title 1",
min=1, max=10, value=1),
sliderInput("input2", "Title 2",
min=1, max=10, value=1),
sliderInput("input3", "Title 3",
min=1, max=10, value=1)
),
mainPanel(
visNetworkOutput("vis", height = '800px') # *** ISSUE HERE***
)
)
),
tabPanel("Second Panel",
sidebarLayout(
sidebarPanel(
sliderInput("input4", "Title 4",
min=1, max=10, value=1),
sliderInput("input5", "Title 5",
min=1, max=10, value=1),
),
mainPanel(
visNetworkOutput("vis", height = '800px') # *** ISSUE HERE***
)
)
), ...
Run Code Online (Sandbox Code Playgroud)
我最终打开了这个GitHub问题.共识似乎是以下是最好的方法:
output$vis_1 <- output$vis_2 <- renderVisNetwork(myNet())
或者,正如评论中所提到的,您可以使用不那么干的方法:
output$vis_1 <- renderVisNetwork(myNet())
output$vis_2 <- renderVisNetwork(myNet())
Run Code Online (Sandbox Code Playgroud)
Joe Cheng对GitHub问题做了如下评论:
"允许多个输出共享相同的ID会产生很多粗糙的副作用,甚至考虑它的含义会让我头疼.例如,两张具有相同ID的Leaflet地图 - 但它们都有很多在浏览器中显示状态,并将该状态传达给客户端.当他们共享相同的ID时,您怎么能理解它? "
所有人都说,并且告诉我,我能够使用动态UI方法和开关切换相同的行为,该开关切换通过uiOutput()(在ui.R文件中)和output$ui <- renderUI({...})(在server.R文件中)向用户显示哪些控件.
| 归档时间: |
|
| 查看次数: |
2129 次 |
| 最近记录: |