typescript - 卡在 grafana 中构建面板插件教程
问题描述
我已经关注构建面板插件教程(https://grafana.com/tutorials/build-a-panel-plugin/),但我坚持在src/module.ts 上添加 .addRadio
问题是当我添加 .addRadio IDE 时显示警告消息
Property 'addRadio' does not exist on type 'PanelPlugin<SimpleOptions, any>'.ts(2339)
当我强制构建插件时,它会显示
yarn run v1.22.5
$ grafana-toolkit plugin:dev
⠙ Linting
/var/lib/grafana/plugins/panel-plugin/src/module.ts
43:4 error Parsing error: Declaration or statement expected
✖ 1 problem (1 error, 0 warnings)
Trace: Error: 1 linting errors found in 4 files
at /var/lib/grafana/plugins/panel-plugin/node_modules/@grafana/toolkit/src/cli/tasks/plugin.build.js:98:31
at step (/var/lib/grafana/plugins/panel-plugin/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:140:27)
at Object.next (/var/lib/grafana/plugins/panel-plugin/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:121:57)
at fulfilled (/var/lib/grafana/plugins/panel-plugin/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:111:62)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at /var/lib/grafana/plugins/panel-plugin/node_modules/@grafana/toolkit/src/cli/utils/useSpinner.js:25:29
at step (/var/lib/grafana/plugins/panel-plugin/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:140:27)
at Object.throw (/var/lib/grafana/plugins/panel-plugin/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:121:57)
at rejected (/var/lib/grafana/plugins/panel-plugin/node_modules/@grafana/toolkit/node_modules/tslib/tslib.js:112:69)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
✖ 1 linting errors found in 4 files
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
谁能解释我做错了什么,或者我实际上可以同时拥有 .addRadio 一次?
**当我删除第一个 .addRadio 时一切正常
这是我的src/module.ts
import { PanelPlugin } from '@grafana/data';
import { SimpleOptions } from './types';
import { SimplePanel } from './SimplePanel';
export const plugin = new PanelPlugin<SimpleOptions>(SimplePanel).setPanelOptions(builder => {
return builder
.addTextInput({
path: 'text',
name: 'Simple text option',
description: 'Description of panel option',
defaultValue: 'Default value of text input option',
})
.addBooleanSwitch({
path: 'showSeriesCount',
name: 'Show series counter',
defaultValue: false,
})
.addRadio({
path: 'seriesCountSize',
defaultValue: 'sm',
name: 'Series counter size',
settings: {
options: [
{
value: 'sm',
label: 'Small',
},
{
value: 'md',
label: 'Medium',
},
{
value: 'lg',
label: 'Large',
},
],
},
showIf: config => config.showSeriesCount
}); // <=== fixed it by remove this ;
.addRadio({ // show error when added this
path: 'color',
name: 'Circle color',
defaultValue: 'red',
settings: {
options: [
{
value: 'red',
label: 'Red',
},
{
value: 'green',
label: 'Green',
},
{
value: 'blue',
label: 'Blue',
},
],
}
});
});
解决方案
推荐阅读
- python - 如何在 Python 中的 Django 日历上创建“删除事件”按钮
- javascript - AngularFirestore 权限缺失或不足(Firebase 自定义令牌身份验证)
- python - 编写一个程序,在平面上输入三个点,它必须决定它们是否创建一个三角形,以及它们是否创建哪种类型
- ghostscript - 在 ubuntu 上运行 makefile 安装 ghostscript 时出错
- sql - 正则表达式仅用双引号替换第一个分号
- python - 从深度数组中提取列表
- c++ - C++ 随机数 -infinity 到 +infinity
- java - JTable 单元格中的 JButtons 在行选择时改变形状
- node.js - 查找数据时无法读取未定义的属性“查找”
- c++ - 如果我们创建用户定义的复制构造函数,为什么编译器不提供默认构造函数?