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