1
一旦它被点击就可以捕获actionButton的标签吗?捕获一个actionButton被点击后的标签
想象一下,我的ui.R上有3个按钮,取决于我点击了哪一个按钮,我想在server.R上执行不同的操作。
一个需要注意的是,按钮动态创建与动态标签server.R
感谢
一旦它被点击就可以捕获actionButton的标签吗?捕获一个actionButton被点击后的标签
想象一下,我的ui.R上有3个按钮,取决于我点击了哪一个按钮,我想在server.R上执行不同的操作。
一个需要注意的是,按钮动态创建与动态标签server.R
感谢
1)(从而掌握上单击该标签的必要性)被点击了什么按钮,在去年用户?
要回答这个问题,你可以使用observeEvent
函数,并通过使用reactiveValues
函数设置一个变量。请确保您更新您的库并在最新版本的R (version 3.1.3)
中工作,因为shiny
依赖于此版本。 Windows系统,你可以按照例如在如何更新here
rm(list = ls())
library(shiny)
ui =fluidPage(
sidebarPanel(
textInput("sample1", "Name1", value = "A"),
textInput("sample2", "Name2", value = "B"),
textInput("sample3", "Name3", value = "C"),
div(style="display:inline-block",uiOutput("my_button1")),
div(style="display:inline-block",uiOutput("my_button2")),
div(style="display:inline-block",uiOutput("my_button3"))),
mainPanel(textOutput("text1"))
)
server = function(input, output, session){
output$my_button1 <- renderUI({actionButton("action1", label = input$sample1)})
output$my_button2 <- renderUI({actionButton("action2", label = input$sample2)})
output$my_button3 <- renderUI({actionButton("action3", label = input$sample3)})
my_clicks <- reactiveValues(data = NULL)
observeEvent(input$action1, {
my_clicks$data <- input$sample1
})
observeEvent(input$action2, {
my_clicks$data <- input$sample2
})
observeEvent(input$action3, {
my_clicks$data <- input$sample3
})
output$text1 <- renderText({
if (is.null(my_clicks$data)) return()
my_clicks$data
})
}
runApp(list(ui = ui, server = server))
2)保存用于进一步操纵的点击低于
下面是Shiny UI: Save the Changes in the Inputs和基于的jdharrison工作的小例子shinyStorage
包。
rm(list = ls())
#devtools::install_github("johndharrison/shinyStorage")
library(shinyStorage)
library(shiny)
my_clicks <- NULL
ui =fluidPage(
#
addSS(),
sidebarPanel(
textInput("sample_text", "test", value = "0"),
uiOutput("my_button")),
mainPanel(uiOutput("text1"))
)
server = function(input, output, session){
ss <- shinyStore(session = session)
output$my_button <- renderUI({
actionButton("action", label = input$sample_text)
})
observe({
if(!is.null(input$sample_text)){
if(input$sample_text != ""){
ss$set("myVar", input$sample_text)
}
}
})
output$text1 <- renderUI({
input$action
myVar <- ss$get("myVar")
if(is.null(myVar)){
textInput("text1", "You button Name")
}else{
textInput("text1", "You button Name", myVar)
}
})
}
runApp(list(ui = ui, server = server))
谢谢pops,但那不是我要找的。 我想根据按钮的标签在组件上设置文本。我用你在这里发布的代码(http://stackoverflow.com/questions/27326929/how-to-update-button-labels-in-r-shiny/27458250#comment46948109_27458250)来动态创建带有动态标签的按钮(让我们说A,B和C),现在我需要知道用户点击了哪个按钮。 谢谢 – Diego 2015-04-01 10:10:39
嗨@Diego,你有没有想过如何做到这一点?我遇到类似的问题......谢谢。 – Carlos 2016-12-02 11:27:03