С большой стоимостью использования глобалов и повторяющегося кода вы можете сделать это следующим образом:
library(shiny)
res <<-(sample(letters, 5))
mytext <<- NULL
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textAreaInput("typingArea", NULL)
),
mainPanel(
fluidRow(
actionButton("btn1", res[1]),
actionButton("btn2", res[2]),
actionButton("btn3", res[3]),
actionButton("btn4", res[4]),
actionButton("btn5", res[5])
)
)
)
)
server = function(input, output, session){
wordlist <- data.frame("word"=sample(LETTERS, 5), stringsAsFactors = F)
Gibberish <- reactive({
input$typingArea
mytext <<- paste0(mytext,input$typingArea, " ")
return(sample(letters, 5))
})
observeEvent(input$btn1, {
mytext<<-paste0(mytext,res[1], " ")
updateTextAreaInput(session, "typingArea", value=mytext)
res <<- sample(letters, 5)
print(res)
})
observeEvent(input$btn2, {
mytext<<-paste0(mytext,res[2], " ")
updateTextAreaInput(session, "typingArea", value=mytext)
res<<- sample(letters, 5)
})
observeEvent(input$btn3, {
mytext<<-paste0(mytext,res[3], " ")
updateTextAreaInput(session, "typingArea", value=mytext)
res <<- sample(letters, 5)
})
observeEvent(input$btn4, {
mytext<<-paste0(mytext,res[4], " ")
updateTextAreaInput(session, "typingArea", value=mytext)
res <<- sample(letters, 5)
})
observeEvent(input$btn5, {
mytext<<-paste0(mytext,res[5], " ")
updateTextAreaInput(session, "typingArea", value=mytext)
res <<- sample(letters, 5)
})
observeEvent({input$btn1 },{
updateActionButton(session,"btn1", res[1])
updateActionButton(session,"btn2", res[2])
updateActionButton(session,"btn3", res[3])
updateActionButton(session,"btn4", res[4])
updateActionButton(session,"btn5", res[5])
})
observeEvent({input$btn2 },{
updateActionButton(session,"btn1", res[1])
updateActionButton(session,"btn2", res[2])
updateActionButton(session,"btn3", res[3])
updateActionButton(session,"btn4", res[4])
updateActionButton(session,"btn5", res[5])
})
observeEvent({input$btn3 },{
updateActionButton(session,"btn1", res[1])
updateActionButton(session,"btn2", res[2])
updateActionButton(session,"btn3", res[3])
updateActionButton(session,"btn4", res[4])
updateActionButton(session,"btn5", res[5])
})
observeEvent({input$btn4 },{
updateActionButton(session,"btn1", res[1])
updateActionButton(session,"btn2", res[2])
updateActionButton(session,"btn3", res[3])
updateActionButton(session,"btn4", res[4])
updateActionButton(session,"btn5", res[5])
})
observeEvent({input$btn5 },{
updateActionButton(session,"btn1", res[1])
updateActionButton(session,"btn2", res[2])
updateActionButton(session,"btn3", res[3])
updateActionButton(session,"btn4", res[4])
updateActionButton(session,"btn5", res[5])
})
}
shinyApp(ui,server)
Я согласен, это абсолютно нелегко и грязно, но это лучшее, что я смог сделатьПриходите.
Надеюсь, это поможет вам!