【发布时间】:2017-09-17 12:45:37
【问题描述】:
我使用 react-bootstrap 库 (https://react-bootstrap.github.io/components.html#tooltips),我想连续显示多个 div,每个 div 都有一个工具提示。
{ _.map(blueprint.components, (component, i) => {
const tooltipId = 'tooltip-' + _.replace(blueprint.name, ' ', '-') + '-' + _.replace(component.name, ' ', '-');
const tooltip = (
<Tooltip id={ tooltipId }>
test
</Tooltip>
);
return (
<div>
<OverlayTrigger key={ i } placement='top' overlay={ tooltip }>
<div>
<ImageIcon name={ component.name } size='small'/>
</div>
</OverlayTrigger>
</div>
);
}) }
这是我为实现这一目标而编写的一段代码。示例蓝图对象如下所示:
[
{
"id": "123442b4d432d10008c650f7",
"name": "Example Blueprint",
"components": [
{
"name": "Apache",
"module": "apache",
"version": "9000"
}
]
}
]
由于不清楚的原因,我收到了由“OverlayTrigger”引发的错误“React.Children.only 预计会收到单个 React 元素子项。”。
我调试了一下,发现 OverlayTrigger this.props.children 内部是一个数组,我认为它应该是一个对象,但我不知道出了什么问题. OverlayTrigger 的子元素是单个 div。任何想法错误的原因是什么?
编辑: 错误由此引发:
https://github.com/react-bootstrap/react-bootstrap/blob/master/src/OverlayTrigger.js#L263
children 变量是一个数组而不是一个对象。我不知道为什么。
【问题讨论】:
标签: javascript twitter-bootstrap reactjs tooltip react-bootstrap