React Bootstrap:在组件上动态设置 props

React Bootstrap: set props on component dynamically

由于我不会解释的相当复杂的场景,我需要能够在用户启动触发器时动态地在 React Bootstrap 组件上设置 placement 道具。我在想这样的事情:

<OverlayTrigger
    ref="trigger"
    onEnter={onEnterFunc}
    placement="bottom"
    overlay={<Popover>...</Popover>}>
   <span>html</span>
</OverlayTrigger>

然后在 onEnterFunc 中以某种方式动态更改放置值。有人知道这是否可能吗?

您可以将 placement 的当前值存储在父组件的状态中。您可以在组件的构造函数中指定一个初始值,并且可以通过在 onEnterFunc 函数中调用 setState 来更新该值。您更新后的 markup/render 函数将如下所示:

render() {
    return (
       <OverlayTrigger
           ref="trigger"
           onEnter={() => this.onEnterFunc()}
           placement={this.state.placement}
           overlay={<Popover>...</Popover>}>
           <span>html</span>
        </OverlayTrigger>
    );
}