Многофункциональная блестящая приборная панель
Я пытаюсь восстановить приложение, как в ссылке. У меня есть многотематическая панель инструментов, и я хотел бы, чтобы каждая тема была в отдельных файлах пользовательского интерфейса и сервера, чтобы лучше контролировать код.
Основной файл (app.R) связывается с другими файлами, например, с помощью пользовательского интерфейса source(file.path("ui", "tab1.R"), local = TRUE)$value
tab1.R выглядит так:
tabPanel("Tab 1", uiOutput("content1"))
(content1 находится в файле сервера).
Я хотел бы иметь возможность поместить больше, чем на tabPanel в один файл. Я думал, что я могу сделать что-то подобное: tab1.R выглядит так:
aaa <- tabPanel("Tab 2", uiOutput("content2"))
bbb <- tabPanel("Tab 1", uiOutput("content1"))
А затем свяжитесь с ними, используя:
source(file.path("ui", "tab1.R"), local = TRUE)$aaa
source(file.path("ui", "tab1.R"), local = TRUE)$bbb
Но я получаю ОШИБКУ:
Error in attr(x, "selected") <- TRUE : attempt to set an attribute on NULL
Я нигде не мог найти ответ на этот вопрос, поэтому я не хотел писать здесь о помощи
1 ответ
Я нашел IMO лучший способ, я просто использовал функции:
aaa <- function(){tabPanel("Tab 2", uiOutput("content2"))}
bbb <- function(){tabPanel("Tab 1", uiOutput("content1"))}
И затем в верхней части файла я загружаю источник:
source(file.path("ui", "tab1.R"), local = TRUE)
Теперь я могу нормально использовать функции в коде:
aaa()
bbb()