Многофункциональная блестящая приборная панель

Я пытаюсь восстановить приложение, как в ссылке. У меня есть многотематическая панель инструментов, и я хотел бы, чтобы каждая тема была в отдельных файлах пользовательского интерфейса и сервера, чтобы лучше контролировать код.

Основной файл (app.R) связывается с другими файлами, например, с помощью пользовательского интерфейса source(file.path("ui", "tab1.R"), local = TRUE)$valuetab1.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()
Другие вопросы по тегам