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
    组件呈现为具有React
    ref
    属性的列表项

    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>
    
    • 目录 我的工具提示
    • ,