Reactjs ReactBootstrap OverlyTrigger容器属性如何工作?
我有一件府绸在套衫机里面 我把它定义为Reactjs ReactBootstrap OverlyTrigger容器属性如何工作?,reactjs,react-bootstrap,Reactjs,React Bootstrap,我有一件府绸在套衫机里面 我把它定义为 const myOverlayTrigger = <ReactBootstrap.OverlayTrigger placement='bottom' overlay={<ReactBootstrap.Tooltip>...</ReactBootstrap.Tooltip>}> {myContent} </ReactBootstrap.OverlayTrigger>; const myO
const myOverlayTrigger = <ReactBootstrap.OverlayTrigger
placement='bottom' overlay={<ReactBootstrap.Tooltip>...</ReactBootstrap.Tooltip>}>
{myContent}
</ReactBootstrap.OverlayTrigger>;
const myOverlayTrigger=
{myContent}
;
然后我在我的一个元素中渲染它,如下所示:
<li>{myOverlayTrigger}</li>
{myOverlayTrigger}
我想在
内部渲染OverlyTrigger本身,但它在主体内部渲染,如文档中所定义。我正在尝试使用container属性在父级
中呈现它
首先,我尝试将ID分配给
,并将此ID作为字符串传递给container=。。。(这不是最好的方法)
其次,我尝试创建额外的元素
,并将其与{myOverlayTrigger}一起呈现在const c = <span></span>;
... container={c} ...
<li>{c} {myOverlayTrigger}</li>
const c=;
... 容器={c}。。。
{c} {myOverlayTrigger}
这两种方法都一致地给出一个错误,而不是dom元素或react组件
显然,将..
本身指定为容器也不起作用,因为它是在定义myOverlayTrigger之后定义的
问题:如何正确使用它?ReactBootstrap.Overlay
建议使用,原因如下所示
OverlyTrigger组件对于大多数用例来说都很好,但是作为一个
更高级别的抽象可能缺乏构建所需的灵活性
将更多细微差别或自定义行为添加到覆盖组件中。对于
在这些情况下,放弃触发器并使用覆盖层可能会有所帮助
直接使用组件
对于您的情况,下面的代码将ReactBootstrap.Overlay
组件呈现为具有Reactref
属性的列表项
getInitialState() {
return (
show: false
);
},
render() {
return (
<ul>
<li ref="dest" onClick={ () => {
this.setState( { show: !this.state.show } );
}}>my contents</li>
<ReactBootstrap.Overlay placement="bottom"
show={ this.state.show } container={ this.refs.dest }>
<ReactBootstrap.Tooltip>tooltip</ReactBootstrap.Tooltip>
</ReactBootstrap.Overlay>
</ul>
);
}
getInitialState(){
返回(
节目:假
);
},
render(){
返回(
- {
this.setState({show:!this.state.show});
}}>我的内容
工具提示
);
}
当通过单击显示工具提示时,将显示生成的HTML
<ul data-reactid=".0.1.0.0.0.0.0.1.1.1.1:$3.1.1">
<li data-reactid=".0.1.0.0.0.0.0.1.1.1.1:$3.1.1.0">
contents
<div>
<div role="tooltip" class="fade in tooltip right" data-reactid=".3">
<div class="tooltip-arrow" data-reactid=".3.0"></div>
<div class="tooltip-inner" data-reactid=".3.1">My tooltip</div>
</div>
</div>
</li>
<span data-reactid=".0.1.0.0.0.0.0.1.1.1.1:$3.1.1.1">,</span>
<noscript data-reactid=".0.1.0.0.0.0.0.1.1.1.1:$3.1.1.2"></noscript>
</ul>
-
目录
我的工具提示
,