我的ui.R中有一个按钮,我只想在"摘要"选项卡已被选中,所以我想到了这段代码
fluidRow(
column(4,
column(12,id="sub",
actionButton("submit", "SUBMIT", width = "100%"))),
column(8,
bsCollapse(id = "collapse7", open = "Results",
bsCollapsePanel("Results",
tabsetPanel(
tabPanel("Summary",
tags$script(HTML("document.getElementById('sub').style.visibility = 'visible';")))
tabPanel("Plot",
tags$script(HTML("document.getElementById('sub').style.visibility = 'hidden';"))))
))))
问题是,按钮是隐藏的,即使在我的第一个标签中它应该是可见的,当我转到Plots并返回Summary时,按钮保持隐藏状态。
答案 0 :(得分:3)
查看:How to use tabPanel as input in R Shiny?
我决定使用observeEvent和输入$ tabset选项。结果是100%工作,而且非常简单。这是代码:
observeEvent(input$choices, {
choice = input$choices
if(choice == "Summary")
{
runjs(
"document.getElementById('submit').style.visibility = 'visible';"
)
}
else
{
runjs(
"document.getElementById('submit').style.visibility = 'hidden';"
)
}
})
另外,我发现为什么我之前的代码不起作用,这是因为当UI初始化时,按钮元素保留了最后一个样式修改(隐藏的代码)并且它没有&#39 ; t取决于我选择的标签,因为它没有被动反应。