phi*_*tin 4 ecmascript-6 reactjs react-bootstrap
我正在尝试在 react-bootstrap-table 的格式化程序中使用 react-bootstrap OverlayTrigger 和 Tooltip 并不断收到以下错误:
OverlayTrigger 唯一需要的道具是overlay,它应该是一个节点,而工具提示唯一需要的道具是id(尽管他们的例子没有显示你需要一个ID),它需要是一个字符串。
“onlyChild 必须传递给只有一个孩子的孩子。”
有问题的相关代码如下:
import {Button, DropdownButton, MenuItem, Modal,
OverlayTrigger, Tooltip} from 'react-bootstrap';
....
const submitterFormatter = (submitter, row) => {
return (
<OverlayTrigger placement="bottom" overlay={toolTipComponent(submitter, row)}>
{submitter}
</OverlayTrigger>
);
};
const toolTipComponent = (toolTipText, row) => {
return (
<Tooltip id={String(row.id)}>
{toolTipText}
</Tooltip>
);
};
Run Code Online (Sandbox Code Playgroud)
我也为 submitterFormatter 尝试了以下方法
const submitterFormatter = (submitter, row) => {
return (
const toolTipInstance = toolTipComponent(submitter, row);
<OverlayTrigger placement="bottom" overlay={toolTipInstance}>
{submitter}
</OverlayTrigger>
);
};
Run Code Online (Sandbox Code Playgroud)
我有同样的问题。我无法解释为什么,但我只是通过在 OverlayTrigger 标签中添加一个标签来解决。我的格式化程序函数在 React 类中。
我的解决方案:
tooltipFormatter(cell, row){
return (<OverlayTrigger placement="right" overlay={<Tooltip id={String(row.id)}>{cell}</Tooltip>}><span>{cell}</span></OverlayTrigger>);
};
Run Code Online (Sandbox Code Playgroud)
在这里,span 标签解决了这个问题。
如果我调整您的代码,这是解决方案:
submitterFormatter(submitter, row){
return (<OverlayTrigger placement="bottom" overlay={<Tooltip id={String(row.id)}>{submitter}</Tooltip>}><span>{submitter}</span></OverlayTrigger>);
};
Run Code Online (Sandbox Code Playgroud)
然后,当我调用 TableHeaderColumn 的 dataFormat 参数时:
<TableHeaderColumn dataField="comment" dataFormat={this.tooltipFormatter}>TableHeader</TableHeaderColumn>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7616 次 |
最近记录: |