您好,我有一个闪亮的应用程序,应该从数据库中读取配置列表,并提示用户使用配置列表。
列表取决于一些GET参数,根据它们,列表可以不同。
我尝试了两种方法:
在ui.R中我只放了一个大的uiOutput元素并且在它的实现中(在server.R中)我将做一个lapply和foreach配置我将输出一个包含一些元素的fluidRow。
ui.R:
uiOutput("serversList")
server.R:
output$serversList <- renderUI({
lapply( get.servers()$server, function(servName) {...
在ui.R中我根据来自数据库的列表放置了一个lapply,对于每个配置,我将输出一个带有新输出对象的fluidRow。在server.R中,我根据来自数据库的相同列表添加了另一个lapply,并且对于每个配置,我将定义在ui.R中动态定义的每个输出对象的实现
ui.R
fluidRow(
box(width=12,
lapply(get.servers()$server, function(serv) {...
list(
uiOutput(paste0('conf', serv)),...
server.R
lapply(get.servers()$server, function(servName) {
output[[paste0('conf', servName)]] <- renderUI({...
解决方案1有效,但每次更改某些配置时,都会刷新整个配置列表,并且用户设置的值将丢失。 我需要一种方法来控制何时应该更新哪个对象。
如果我从数据库(在server.R中)获取数据,解决方案2不起作用。
如果我从global.R中的纯文本文件中获取数据,解决方案2可以工作,我可以控制什么对象应该更新,因为每个输出对象在其中使用的输入对象发生更改时都会刷新。
有没有解决方案3?或1/2可以修复?
答案 0 :(得分:0)
我找到了解决方案。 我可以为serversList修复解决方案1和内部 renderUI 我可以定义其他renderUI,返回一个与renderUIs连接的uiOutput的fluidRow。
长篇故事简短:解决方案2内部解决方案1。