renderMenu导致格式奇怪,R Shiny Dashboard

时间:2019-10-01 22:48:35

标签: r shiny dashboard

我正在从Shiny应用程序的服务器创建侧边栏菜单,但是服务器生成的菜单的格式与UI中创建的菜单不匹配。

在将div()分配给菜单后,我尝试了一些Shinyjs隐藏/显示功能,该菜单也以奇怪的,不匹配的格式结束。我认为renderMenu可能是更好的方法。我不希望使用CSS进行“黑客攻击”,但会有所帮助。

这是一个有效的脚本:

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = 'Header'),
  dashboardSidebar(
    sidebarMenu(
      menuItem('First Menu', tabName = 'first_menu'),
        menuSubItem('sub1', tabName = 'sub_1'),
        menuSubItem('sub2', tabName = 'sub_2'),
      uiOutput('server_menu')
    )
  ),
  dashboardBody()
)

server <- function(input, output) {

  output$server_menu <- renderMenu({
    list(
      menuItem('Second Menu', tabName = 'second_menu'),
               menuSubItem('sub3', tabName = 'sub_3'),
               menuSubItem('sub4', tabName = 'sub_4')
              )
  }) 

}

shinyApp(ui, server)

哪个会产生以下结果:

enter image description here

任何有关如何解决此问题的建议都非常棒!干杯

1 个答案:

答案 0 :(得分:1)

使用/root/theia_rust_app/node_modules/.bin/theia build (node:215) DeprecationWarning: Tapable.apply is deprecated. Call apply on the plugin directly instead Hash: fa3940c5f903c29cc7b7 Version: webpack 4.41.0 Time: 71483ms Built at: 10/01/2019 10:39:48 PM 17 assets Entrypoint main = bundle.js bundle.js.map [75] (webpack)/buildin/global.js 472 bytes {0} [built] [150] ./node_modules/jsonc-parser/lib/esm/main.js + 4 modules 56.8 KiB {0} [built] | 5 modules [531] (webpack)/buildin/module.js 497 bytes {0} [built] [841] ./node_modules/react-virtualized/dist/es/index.js + 67 modules 325 KiB {0} [built] | 68 modules [847] ./src-gen/frontend/index.js 6.56 KiB {0} [built] [1015] ./node_modules/@theia/core/src/common/keyboard/layouts sync ^\.\/.*\.json$ 1.39 KiB {0} [built] [1220] ./node_modules/moment/locale sync ^\.\/.*$ 3 KiB {0} [optional] [built] [1315] ./node_modules/vscode-textmate/release sync 160 bytes {0} [built] + 1962 hidden modules WARNING in ./node_modules/vscode-textmate/release/main.js 23:15-27 Critical dependency: the request of a dependency is an expression @ ./node_modules/@theia/monaco/lib/browser/textmate/monaco-textmate-service.js @ ./node_modules/@theia/monaco/lib/browser/textmate/index.js @ ./node_modules/@theia/textmate-grammars/lib/browser/js.js @ ./node_modules/@theia/textmate-grammars/lib/browser/textmate-grammars-frontend-module.js @ ./src-gen/frontend/index.js WARNING in ./node_modules/vscode-textmate/release/main.js Module Warning (from ./node_modules/source-map-loader/index.js): (Emitted value instead of an instance of Error) Cannot find SourceMap 'main.js.map': Error: Can't resolve './main.js.map' in '/root/theia_rust_app/node_modules/vscode-textmate/release' @ ./node_modules/@theia/monaco/lib/browser/textmate/monaco-textmate-service.js 73:24-50 @ ./node_modules/@theia/monaco/lib/browser/textmate/index.js @ ./node_modules/@theia/textmate-grammars/lib/browser/js.js @ ./node_modules/@theia/textmate-grammars/lib/browser/textmate-grammars-frontend-module.js @ ./src-gen/frontend/index.js ERROR in ./src-gen/frontend/index.js Module not found: Error: Can't resolve '@theia/cpp-debug/lib/browser/cpp-debug-frontend-module' in '/root/theia_rust_app/src-gen/frontend' @ ./src-gen/frontend/index.js 57:47-112 Child worker: 2 assets Entrypoint main = worker-ext.e08cdfdcb830fe7e8493.js worker-ext.e08cdfdcb830fe7e8493.js.map [17] (webpack)/buildin/global.js 472 bytes {0} [built] [167] (webpack)/buildin/module.js 497 bytes {0} [built] + 181 hidden modules Error: webpack exited with an unexpected code: 2. at ChildProcess.<anonymous> (/root/theia_rust_app/node_modules/@theia/application-manager/lib/application-process.js:66:28) at ChildProcess.emit (events.js:198:13) at maybeClose (internal/child_process.js:982:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5) error Command failed with exit code 1. 代替uiOutput。另外,您的menuItemOutputmenuItem的层次结构似乎不正确。 menuSubItem应该是menuSubItem的子代

menuItem

enter image description here