输入此内容后,我意识到这实际上不是对原始问题的回答,而是对您在上述评论中提出建议的请求的后续行动。如果你真的不相信它应该留下来,我会删除它,但它太大了,无法发表评论,抱歉。
您必须使用旧版本的 React,因此一开始这对您来说可能不正确,但是您可以通过执行以下操作使用该父组件中的状态来跟踪该信息
ref={ function ( element ) {
// at the top of render() put
// var self = this;
self.setState({
circleWidth: element.offsetWidth,
circleHeight: element.offsetHeight
})
}
假设这些值随时间变化,您将需要为该更改添加一个事件侦听器(可以在该ref设置中添加),setState并在您需要重新渲染时再次运行它。
至于<Popover trigger=你想要做的事情是:
<Popover trigger={this.state.circleWidth > 999} />
...其中 999 是您的触发值。如果它返回 true,那么你渲染 Popover。如果没有,你就摧毁它。这两种情况都将在 Popover 内处理,但不需要触及div
当然,React 中的好做法是在顶部进行比较render()并将结果放入像isTriggered.