用户界面-在点击R Shiny按钮后将输入字段重置为null



我正在构建一个应用程序,用户可以在其中按列输入表的数据值。单击ADD按钮后,输入的值将按列追加到现有的值。如。如果输入col1, 2,3并点击ADD我们在显示

col1
   2
   3

如果输入col2 4,7并点击ADD我们就有了显示

col1 col2
   2    4
   3    7

等。

我希望在单击add按钮时,清除输入字段以允许新列的输入。请找到以下代码的ui和服务器。输出表也不能正确显示,任何帮助解决这个问题也将是感激的。

ui.R
shinyUI(pageWithSidebar(
headerPanel("My data table"),
sidebarPanel(h5("Enter input"),
           textInput("colname","Enter Column Name",NA),
           numericInput("x","X",NA),
           numericInput("y","Y",NA),
           br(),
           actionButton("Add","ADD")),
mainPanel(verbatimTextOutput("out"))
))

server.R
shinyServer(function(input,output){
myTable <- reactive({
if(input$Add > 0)
  return(isolate({
    colnm <- input$colname
    x <- input$x
    y <-  input$y
    result <- data.frame(rbind(colnm,x,y))
    result
  }))
})
output$out <- renderTable({
myTable()
 })
})

表需要使用renderTable而不是verbatimTextOutput来呈现。我猜你想保留以前的输入。一种方法是使用reactiveValues。编辑:我没看到你想重置输入。重置输入使用updateNumericInputupdateTextInput功能。您还需要在server函数中传递session变量。

runApp(
  list(ui = pageWithSidebar(
    headerPanel("My data table"),
    sidebarPanel(h5("Enter input"),
                 textInput("colname","Enter Column Name",NA),
                 numericInput("x","X",NA),
                 numericInput("y","Y",NA),
                 br(),
                 actionButton("Add","ADD")),
    mainPanel(tableOutput("out"))
  ),
  server = function(input,output,session){
    myValues <- reactiveValues()
    observe({
      if(input$Add > 0){
        isolate({
          colnm <- input$colname
          x <- input$x
          y <-  input$y
          if(!is.null(myValues$myDf)){
            myValues$myDf <- cbind(myValues$myDf, 
                                   data.frame(setNames(list(c(x, y)), colnm))
            )
          }else{
            myValues$myDf <- data.frame(setNames(list(c(x, y)), colnm))
          }
        })
        updateNumericInput(session, "x","X", NA)
        updateNumericInput(session, "y","Y", NA)
        updateTextInput(session, "colname","Enter Column Name",NA)
      }
    })
    output$out <- renderTable({
      myValues$myDf
    })
  })
)
编辑:

可以改成

    updateNumericInput(session, "x","X", 3)
    updateNumericInput(session, "y","Y", 5)
    updateTextInput(session, "colname","Enter Column Name",'Default NAME')

,它可以工作。现在值改为默认值3,5和' default NAME'

相关内容

  • 没有找到相关文章

最新更新