以前にツールチップが機能していて、コンポーネントを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(); ?
}
しかし、これはどれも機能していないようです。ツールチップが表示されません。
私は問題を見つけました。 _data-toggle
_とtitle
を間違った要素に配置していました(代わりにラベルに配置する必要があります)。また、$(this.refs.test).tooltip();
は正常に機能します。
Refs/React DOMを使用せずに、data-toggle属性でツールチップを選択できます。
componentDidMount() {
$('[data-toggle="tooltip"]').tooltip();
}
componentDidUpdate() {
$('[data-toggle="tooltip"]').tooltip();
}
ソース: ブートストラップドキュメント
CDNでjQueryをロードしている場合は、window。$で参照することもできます。
私はそれが古い質問であることを知っていますが、bootstrap/jquery/reactの副作用を避けるために、ツールチップが必要な場合は、これを使用してください:
https://www.npmjs.com/package/react-tooltip
使い方はとても簡単で、reactプロジェクトのbootstrap tooltipよりもうまく機能します
実際のDOM表現を取得する必要がある場合は、これを試してください。
$(this.refs.test.getDOMNode()).tooltip();
$(React.findDOMNode(this.refs.test)).tooltip();
var ReactDom = require('react-dom');
$(ReactDom.findDOMNode(this.refs.test)).tooltip();
ReactはDOMに書き込むだけなので、他の人と衝突する可能性のある変更を認識できないため、実際のReactコンポーネントを使用するとよいでしょう。
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/ からの例)