我想从server.r
向ui.r发送数值例如,当我将数据库加载到服务器端时,我想将length(colnames(datababase))
发送到UI。
作为数值发送非常重要,因为我想在UI端进行一些计算。
我该怎么做?
我知道有些像textOutput
这样的解决方案与UI通信,但现在我想传递数值。
ps1:as.numeric(textOutput("text1'))
不起作用。 :)
ps2:我也知道函数sendCustomMessage
和Shiny.addCustomMessageHandler
但我真的不明白如何使用它直接向UI发送信息。
答案 0 :(得分:1)
我建议使用renderUI()
的解决方案:)。
library(shiny)
ui <- fluidPage(
selectInput("nr", "number", 2:4),
uiOutput("plots")
)
server <- function(input, output, session) {
output$plots <- renderUI({
plot_output_list <- lapply(1:input$nr, function(i) {
plotname <- paste0("plot", i)
plotOutput(plotname)
})
tagList(plot_output_list)
})
observe({
for(iterNr in 1:input$nr){
output[[paste0("plot", iterNr)]] <- renderPlot({
plot(iterNr)
})
}
})
}
shinyApp(ui, server)
答案 1 :(得分:1)
如果我正确理解你的问题,你需要看一下observeEvent和反应值,这样你的绘图每次输入改变时都会重新渲染(或者其他一些事件发生)
基本上在你的server.R中,在observeEvent中调用renderPlot,你实际上不必将它“发送”到UI(再次,如果我明白你的意思,很难说没有例子)