为DT输出呈现文本输入时出现R闪亮错误



在我闪亮的应用程序中为DT呈现文本输入时,我遇到了一些非常奇怪的问题。textinput存储一些用作应用程序设置之一的值。这些设置存储在一个反应列表中,其中一个列表成员是data.table,它存储用于渲染的所有设置。

我做了一个可复制的例子,而不是代码片段。不漂亮,但它说明了问题。

library(shiny)
rv = reactiveValues()

ui <- shinyUI(fluidPage(
textInput(inputId = "textinput", label = h3("Numeric input"), value = "some value"),
tags$hr(),
fluidRow(column(3, verbatimTextOutput("textinput"))),
tags$hr(),
tabPanel("Settings table for viewing", dataTableOutput('settings_table')),
))
server <- function(input, output, session) {
observe({
# lst_names = list()
# lst_values = list()

rv$textinput <-  renderText( input$textinput )
output$textinput <- renderText({ input$textinput }) # this is displayed nicely
# lst_names = c(lst_names, "rv$textinput") 
# lst_values = c(lst_values, rv$textinput)        

rv$settings = data.table(Var_names = "rv$textinput", Var_values = rv$textinput)
})
output$settings_table = DT::renderDataTable(options = list(pageLength = 50), {
rv$settings
})
}
shinyApp(ui, server)

我在DT的github中发现了这段文本,但我想不出让它工作的方法。numericinput、rendertext、renderprint、将rendertext/print移出"观察"块的问题相同。

有什么建议吗?

您没有使用好的dataTableOutput。您必须使用DT::dataTableOutput或等效的DT::DTOutput

library(shiny)
library(DT)
ui <- fluidPage(
textInput(inputId = "textinput", label = h3("Numeric input"), 
value = "some value"),
tags$hr(),
fluidRow(column(3, verbatimTextOutput("textinput"))),
tags$hr(),
tabPanel("Settings table for viewing", DTOutput('settings_table')),
)
server <- function(input, output, session) {
output$textinput <- renderText({ input$textinput }) 
rv <- reactiveValues()
observe({
rv$textinput <- input$textinput
rv$settings <- data.frame(
Var_names = "rv$textinput", 
Var_values = rv$textinput
)
})
output$settings_table <- renderDT(options = list(pageLength = 50), {
rv$settings
})
}
shinyApp(ui, server)

相关内容

  • 没有找到相关文章

最新更新