Я пишу блестящее приложение, в котором есть таблица (с использованием DT::renderDataTable
), из которой пользователи могут выбирать строку. Но я хочу, чтобы пользователь также мог добавлять новую строку (строки), если то, что они хотят, еще нет в таблице. Я использую элементы управления вводом, чтобы пользователь вводил новые данные, и у меня есть кнопка действия, которая при нажатии должна создать новую строку данных в таблице из входных значений. Но нажатие кнопки не обновляет таблицу.
Минимальный пример:
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
, но я не могу найти правильный способ сделать это.
Это мое первое блестящее приложение, так что, возможно, есть основная концепция, которую я не совсем понимаю. Какой правильный путь?
value
параметр дляnumericInput()
- person HubertL   schedule 25.11.2016