|
本文档涉及 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
}