本文档涉及 Neo4j Labs 旗下不受支持的 NeoDash 版本。如需使用受支持的 NeoDash 产品,请参阅 NeoDash 商业版

状态管理

本文档涉及 Neo4j Labs 旗下不受支持的 NeoDash 版本。如需使用受支持的 NeoDash 产品,请参阅 NeoDash 商业版

NeoDash 是一个具有复杂内部状态的应用程序。如果您计划以某种方式扩展应用程序状态,请确保熟悉 Redux 设计模式。

应用程序的整个状态对象被封装在以下 JSON 结构中

{
  "dashboard": {
    "title": "My Dashboard Name",
    "version": "2.4",
    "settings": {
      "pagenumber": 0,
      "editable": true,
      ...
      "parameters": {
          ...
       }
    },
    "pages": [
        ...
    ]
  },
  "application": {
        ...
   },
  "version": "2.1.0"
}

在最高层次上,此对象由三个条目组成

  • dashboard:所有与当前活动仪表板相关的状态。当仪表板被加载、修改或移除时会更改。

  • application:所有与应用程序本身相关的状态。它描绘了哪些窗口是打开的、您连接了哪个数据库,等等。

  • version:运行中的 NeoDash 的版本。请注意,这些是完整的版本号(形如 X.Y.Z),而仪表板版本采用不同的版本方案。

想查看您的应用程序的完整状态对象吗?请在“关于”窗口中生成调试报告

仪表板状态

dashboard 条目包含当前加载的仪表板的完整状态。下面以一个简单的仪表板为例。

{
  "dashboard": {
    "title": "A Simple Dashboard",
    "version": "2.4",
    "settings": {
      "pagenumber": 0,
      "editable": true,
      "fullscreenEnabled": true,
      "parameters": {
          "neodash_person_name": "Bob"
       }
    },
    "pages": [
        {
          title: “My Page”
          reports: [
            {
                "title": "My Report",
                "query": "MATCH (n)-[e]->(m) RETURN n,e,m",
                "type": "graph",
                "x": "1",
                "y": "2",
                "width": "6",
                "height": "3",
                "settings": {
                    "nodeColorSchmeme": "blue"
                }
            }
        ]
     }
    ]
  }
}

对象的关键条目包括

  • title:仪表板的标题。它显示在窗口顶部。

  • version:已加载仪表板的版本。

  • settings:包含仪表板的设置。包括当前页码、仪表板是否可编辑、是否处于全屏模式以及当前设置的仪表板参数。

  • pages:包含仪表板中所有页面的列表。每个页面都有标题和报告列表。

应用程序状态

应用程序状态是一个扁平的键值字典,用于决定用户窗口的外观(哪些窗口打开了?),以及当前的数据库连接和应用是否在独立模式下运行。

"application": {
    "notificationTitle": null,
    "notificationMessage": null,
    "connectionModalOpen": false,
    "welcomeScreenOpen": true,
    "aboutModalOpen": true,
    "connection": {
      "protocol": "neo4j+s",
      "url": "localhost",
      "port": "",
      "database": "",
      "username": "neo4j",
      "password": "************"
    },
    "desktopConnection": null,
    "connected": false,
    "dashboardToLoadAfterConnecting": null,
    "waitForSSO": false,
    "standalone": false,
    "oldDashboard": null,
    "ssoEnabled": false,
    "ssoProviders": [],
    "ssoDiscoveryUrl": "https://example.com",
    "standaloneProtocol": "neo4j+s",
    "standaloneHost": "localhost",
    "standalonePort": "7687",
    "standaloneDatabase": "neo4j",
    "standaloneDashboardName": "My Dashboard",
    "standaloneDashboardDatabase": "dashboards",
    "standaloneDashboardURL": "dashboards",
    "loggingMode": "0",
    "loggingDatabase": "logging",
    "standaloneAllowLoad": false,
    "standaloneLoadFromOtherDatabases ": false,
    "standaloneMultiDatabase": false,
    "standaloneDatabaseList": "neo4j",
    "notificationIsDismissable": null
}
© . This site is unofficial and not affiliated with Neo4j, Inc.