我正在寫一個閃亮的應用程序,該應用程序有一個用戶可以從中選擇行的表(使用DT::renderDataTable
)。但是我希望用戶也可以添加新的行,如果他們想要的東西不在表中。我爲用戶使用輸入控件輸入新數據,並且我有一個操作按鈕,如果按下該按鈕,應該從輸入值在表中創建新的一行數據。但按下按鈕不會更新表格。在Shiny中,使用用戶輸入中的新值更新DataTable
小例子:
library(shiny)
library(DT)
mydata = data.frame(id=letters[1:5], val=sample(10,5,T))
ui = fluidPage(dataTableOutput("table"),
textInput('NewID', 'Enter new ID'),
numericInput('NewVal', 'Enter new val', 1),
actionButton("goButton", "Update Table"))
server = function(input,output){
output$table = renderDataTable(mydata)
update = eventReactive(input$goButton, {
newrow = data.frame(id = input$NewID, val = input$NewVal)
mydata = rbind(mydata, newrow)
})
}
shinyApp(ui,server)
顯然,這是接近這個錯誤的方式。我試過renderDataTable
和更新mydata
renderUI
,observe
和reactive
的代碼,但我找不到正確的方法來做到這一點。
這是我的第一個閃亮的應用程序,所以也許有一個基本的概念,我不太明白。什麼是正確的方式?
'錯誤生效(默認):參數「價值」的缺失,沒有default' – HubertL
@HubertL你得到這個錯誤時,粘貼和運行代碼?它對我來說運行正常。 – dww
我需要爲'numericInput()'提供'value'參數' – HubertL