獲得被點擊的actionButton的標籤的最佳方式是什麼?我有一個actionButton標籤已更新。當用戶點擊時,我需要捕獲它。我嘗試了輸入$ action2.label並輸入$ action2.text,但都沒有工作。在Shiny應用程序中捕獲actionButton的標籤
ui.R
library(shiny)
shinyUI(fluidPage(
tags$head(tags$style(
HTML('
{ background-color: #dec4de;}
#action4 { width: 275 px; color:red; background-color:yellow }
#action1, #action2, #action3 { color:black; background-color:lime }
body, label, input, button, select { font-family: "Arial"; }'
)
)),
titlePanel("My Shiny App!"),
sidebarLayout(
sidebarPanel(
tabsetPanel(type = "tabs",
tabPanel("About", "Developer Info here"),
tabPanel("How to Use", "User Docs"))
),
mainPanel(
img(src="capstone1.jpg", align = "center"),
br(),br(),
tags$textarea(id="stext", rows=3, cols=80, "Default value"),
br(),br(),br(),
actionButton("action1", "Action 1"),
actionButton("action2", "Action 2"),
actionButton("action3", "Action 3"),
br(), br(),
actionButton("action4",
label = "High < < < <PROBABILITY> > > > Low")
)
)))
server.R
library(shiny)
shinyServer(function(input, output, session) {
observeEvent(input$action1, {
x <- input$stext
print(input$action2.text)
updateTextInput(session, "stext", value=paste(x, "Btn 1"))
})
observeEvent(input$action2, {
x <- input$stext
print(input$action2.label)
updateTextInput(session, "stext", value=paste(x, "Btn 2"))
})
observeEvent(input$action3, {
x <- input$stext
print(x)
updateTextInput(session, "stext", value=paste(x, "Btn 3"))
})
})
更新:增加對shinyBS代碼
ui.R
{
library(shinyBS)
....
bsButton("myBtn", "")
...
}
server.R
{
....
updateButton(session, "myBtn", "New Label")
....
}
當我創建該動作按鈕並將其存儲爲對象並進行探索時,我發現這個ab $ children [[1]] [[2]]會爲您提供標籤名稱。你可以嘗試如果輸入$動作1 $子[[1]] [[2]]給你你需要什麼? – Gopala
查看此源代碼,圖標和標籤將作爲列表存儲在閃亮的標籤中。因此,標籤是作爲該列表的第二個元素獲得的。 https://github.com/rstudio/shiny/blob/master/R/input-action.R – Gopala
@ user3949008,我得到了錯誤「警告:觀察者中的未處理錯誤:$運算符對原子向量無效 observeEvent(input $ action1)「 – PeterV