工具提示渲染时的 C3JS JSX 语法 html
C3JS JSX syntax on render for tooltip html
好吧,我有一个使用动态工具提示的应用程序,这必须根据图表上的值更改设计,但是很难将内部 html 添加到工具提示的内容中重构,因为我有很多工具提示设计成许多条件和变量
我尝试导入一个组件,但内容函数只需要一个带有 html
的字符串
所以我想知道是否可以添加 jsx 语法或添加一个反应组件来将工具提示的 html 渲染到 c3
的内容中
data: {
columns: [
['data1', 300, 350, 300, 0, 0, 0],
['data2', 130, 100, 140, 200, 150, 50]
],
types: {
data1: 'area',
data2: 'area-spline'
}
},
axis: {
y: {
padding: {bottom: 0},
min: 0
},
x: {
padding: {left: 0},
min: 0,
show: false
}
},
tooltip: {
contents: function () {
// call a function that return a react component
}
}
您可以使用 ReactDomServer.renderToString 渲染此 https://www.npmjs.com/package/react-dom#react-domserver
但是我不确定这是否是一个好的解决方案,它不是为此目的而设计的。 (如果你检查控制台,你可以看到仍然有错误)。
这里是 fiddle 在 c3js 工具提示中使用 React 组件。
http://jsfiddle.net/uqh2679x/
但是您仍然可以使用模板字面量实现相同的目的:
工作 fiddle:http://jsfiddle.net/z7evqpnL/
tooltip: {
contents: (data) => `
<div class="tooltip">
<div class="title">${customText}</div>
<div>Data1: ${data[0].value}</div>
<div>Data2: ${data[1].value}</div>
</div>`
}
}
当您使用 `` 时,您可以像上面的 ${variable} 一样将变量放入字符串中。您也可以将此字符串分成多行,以使其更具可读性(如果您将其记录下来,它还将保留所有换行符)
好吧,我有一个使用动态工具提示的应用程序,这必须根据图表上的值更改设计,但是很难将内部 html 添加到工具提示的内容中重构,因为我有很多工具提示设计成许多条件和变量
我尝试导入一个组件,但内容函数只需要一个带有 html
的字符串所以我想知道是否可以添加 jsx 语法或添加一个反应组件来将工具提示的 html 渲染到 c3
的内容中 data: {
columns: [
['data1', 300, 350, 300, 0, 0, 0],
['data2', 130, 100, 140, 200, 150, 50]
],
types: {
data1: 'area',
data2: 'area-spline'
}
},
axis: {
y: {
padding: {bottom: 0},
min: 0
},
x: {
padding: {left: 0},
min: 0,
show: false
}
},
tooltip: {
contents: function () {
// call a function that return a react component
}
}
您可以使用 ReactDomServer.renderToString 渲染此 https://www.npmjs.com/package/react-dom#react-domserver
但是我不确定这是否是一个好的解决方案,它不是为此目的而设计的。 (如果你检查控制台,你可以看到仍然有错误)。
这里是 fiddle 在 c3js 工具提示中使用 React 组件。 http://jsfiddle.net/uqh2679x/
但是您仍然可以使用模板字面量实现相同的目的: 工作 fiddle:http://jsfiddle.net/z7evqpnL/
tooltip: {
contents: (data) => `
<div class="tooltip">
<div class="title">${customText}</div>
<div>Data1: ${data[0].value}</div>
<div>Data2: ${data[1].value}</div>
</div>`
}
}
当您使用 `` 时,您可以像上面的 ${variable} 一样将变量放入字符串中。您也可以将此字符串分成多行,以使其更具可读性(如果您将其记录下来,它还将保留所有换行符)