【发布时间】:2017-08-01 20:28:24
【问题描述】:
说明
我有一个textAreaInput 框,我想从默认值开始。用户可以点击2actionButtons(提交 & 随机评论)。 Submit 更新来自textAreaInput 的评论以供进一步处理(情节等),而Random Comment 将新的随机值发送到textAreaInput(用户可以输入textAreaInput 框也是如此)。我几乎拥有它,但在按下 Submit 按钮之前,无法让应用程序更新textAreaInput 的value。
问题
我希望在按下 Random Comment 时更新它,但仍允许用户擦除文本框并键入自己的文本。我怎样才能让应用程序做到这一点?
MWE
library(shiny)
library(shinyjs)
library(stringi)
shinyApp(
ui = fluidPage(
column(2,
uiOutput("randcomment"),
br(),
div(
actionButton("randtext", "Random Comment", icon = icon("quote-right")),
div(actionButton("submit", "Submit", icon = icon("refresh")), style="float:right")
)
),
column(4, div(verbatimTextOutput("commenttext"), style = 'margin-top: 2cm;'))
),
server = function(input, output) {
output$randcomment <- renderUI({
commentUi()
})
comment_value <- reactiveValues(default = 0)
observeEvent(input$submit,{
comment_value$default <- input$randtext
})
renderText(input$randtext)
commentUi <- reactive({
if (comment_value$default == 0) {
com <- stri_rand_lipsum(1)
} else {
com <- stri_rand_lipsum(1)
}
textAreaInput("comment", label = h3("Enter Course Comment"),
value = com, height = '300px', width = '300px')
})
output$commenttext <- renderText({ input$comment })
}
)
【问题讨论】: