[英]How To Use AngularJS UI Bootstrap tooltips with Bootstrap 4
[英]How do use bootstrap tooltips with React?
我的工具提示工作較早,我正在嘗試將我的組件遷移到React。 我還沒有使用react-bootstrap,因為我不確定我是否會去,因為它仍處於大量開發階段,而不是1.0。
這是我的渲染代碼的代碼片段:
<span>
<input data-toggle="tooltip" ref="test" title={this.props.tooltip} type="radio" name="rGroup" id={"r" + this.props.name} />
<label className="btn btn-default" htmlFor={"r" + this.props.name}></label>
</span>
並稱之為:
<MyComponent name="apple" tooltip="banana" />
我知道你必須調用工具提示功能讓它顯示出來,我認為這就是我搞砸的地方。 我正在嘗試這樣的事情:
componentDidMount() {
$(this.refs.test).tooltip();
// this.refs.test.tooltip(); ?
// $('[data-toggle="tooltip"]').tooltip(); ?
}
但這似乎都沒有奏效。 工具提示未顯示。
不使用refs / React DOM,您可以通過data-toggle屬性選擇工具提示:
componentDidMount() {
$('[data-toggle="tooltip"]').tooltip();
}
componentDidUpdate() {
$('[data-toggle="tooltip"]').tooltip();
}
來源: Bootstrap文檔
注意,如果您通過CDN加載jQuery,您可以通過窗口引用它。$。
我發現了問題。 我把data-toggle
和title
放在錯誤的元素上(它應該放在標簽上)。 另外, $(this.refs.test).tooltip();
工作良好。
我知道這是一個老問題,但為了避免使用bootstrap / jquery / react的副作用,如果你想要工具提示,請使用:
https://www.npmjs.com/package/react-tooltip
它比反應項目中的bootstrap工具提示更易於使用和工作
你需要得到真正的DOM表示,請試試這個:
$(this.refs.test.getDOMNode()).tooltip();
$(React.findDOMNode(this.refs.test)).tooltip();
var ReactDom = require('react-dom');
$(ReactDom.findDOMNode(this.refs.test)).tooltip();
如果使用真正的React組件會更好,因為React只會寫入DOM,因此它無法識別任何可能與其他人發生沖突的更改。
https://github.com/react-bootstrap/react-bootstrap
const tooltip = (
<Tooltip id="tooltip">
<strong>Holy guacamole!</strong> Check this info.
</Tooltip>
);
const overlay = (
<OverlayTrigger placement="left" overlay={tooltip}>
<Button bsStyle="default">Holy guacamole!</Button>
</OverlayTrigger>
);
(例子來自https://react-bootstrap.github.io/components/tooltips/ )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.