で構築しApp
ていましたRshiny
。
いくつかありますが、 をクリックしたときにポップアップを作成するオプションをinfoBox
使用したいと思います。href
infoBox
ポップアップ オプションには、shinyBS を使用します。ここに私が試したものがあります:
valueBox(value=entry_01, icon = icon("users","fa-lg",lib="font-awesome"),href=shinyInput(actionLink,id='button_01',len=1,class="btn btn-default action-button",label=""),
width=NULL,color = "light-blue",subtitle = ""
)
しかしhref
、外部の Web サイトにリンクしたい場合にこのオプションが完全に機能することhref = "http://stackoverflow.com/"
がわかりましたが、アプリの内部リンクにリンクする方法がわかりませんでした。
編集
valueBox出力リスト内に2つの変数を追加することにより、ボックスをクリック可能にし、それがアクションボタンであると光沢のあるものにするソリューションを見つけたので、この編集を行います。
- クラスaction-button
-id
値ボックスがクリックされたことを検出するために、observe または observeEvent を使用できるようにします。
ここに再現可能な例があります
require(shiny)
require(shinydashboard)
header <- dashboardHeader(title="ReproductibleExample")
sidebar <- dashboardSidebar(disable=T)
body <- dashboardBody(valueBoxOutput("box_01"),
textOutput("print"))
ui <- dashboardPage(header, sidebar, body)
server<-shinyServer(function(input, output,session) {
output$box_01 <- renderValueBox({
entry_01<-20
box1<-valueBox(value=entry_01
,icon = icon("users",lib="font-awesome")
,width=NULL
,color = "blue"
,href="#"
,subtitle=HTML("<b>Test click on valueBox</b>")
)
box1$children[[1]]$attribs$class<-"action-button"
box1$children[[1]]$attribs$id<-"button_box_01"
return(box1)
})
output$print<-renderText({
print(input$button_box_01)
})
})
shinyApp(ui,server)