- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个按钮,我们希望根据某些条件启用或禁用。此外,我们希望按钮在禁用时的悬停效果显示工具提示,解释其禁用原因。
目前,我们有这样的事情:
export class NextButton extends React.Component {
makePopover () {
return (
this.props.someCondition && <Popover>Please enter a title.</Popover>
)
}
render () {
return (
<div>
<OverlayTrigger placement='top' overlay={this.makePopover()}>
{/* wrap this in a div so when the button is disabled, the popover still works */}
<div>
<Button
onClick={() => this.props.goToNextPage()}
disabled={this.props.someCondition}
>
Next
</Button>
</div>
</OverlayTrigger>
</div>
);
}
}
makePopover
函数,如果
someCondition
是假的,
Popover
不会被渲染并且
OverlayTrigger
如果返回没有 id 的任何内容,则会引发错误。
this.props.someCondition ? <Popover>...</Popover> : <span>...</span>
Warning: Unknown props
placement
,arrowOffsetLeft
,arrowOffsetTop
,positionLeft
,positionTop
on tag. Remove these props from the element.
OverlayTrigger
周围,而不是有条件地显示 Popover。本身,做类似的事情:
this.props.someCondition
?
<OverlayTrigger>
<Button>Next</Button>
</OverlayTrigger>
:
<Button>Next</Button>
最佳答案
我面临着同样的问题,我认为解决它的最干净的方法是使用条件包装器。
const ConditionalWrapper = ({
condition,
wrapper,
children,
}) => (condition ? wrapper(children) : children);
export class NextButton extends React.Component {
render () {
return (
<div>
<ConditionalWrapper
condition={this.props.someCondition}
wrapper={children => (
<OverlayTrigger
overlay={<Popover>Please enter a title.</Popover>}
placement='top'
>
{children}
</OverlayTrigger>
)}
>
{/* wrap this in a div so when the button is disabled, the popover still works */}
<div>
<Button
onClick={() => this.props.goToNextPage()}
disabled={this.props.someCondition}
>
Next
</Button>
</div>
</ConditionalWrapper>
</div>
);
}
}
关于reactjs - React Bootstrap - 条件 OverlayTrigger 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57958213/
我在 OverlayTrigger 中有一个弹出窗口。 我将其定义为 const myOverlayTrigger = ...}> {myContent} ; 然后我将其渲染在我的一个元素
我正在将react-boostrap的Popover与OverlayTrigger类一起使用。我的问题是,当我在显示时更改弹出窗口上的内容时,它会正确调整大小,但位置会出错。即使弹出窗口不再与 Ove
我正在使用 react-bootstrap 中的工具提示覆盖,但在 StrictMode 中不推荐使用错误 findDOMNode。根据 documentation使用overlaytrigger的函
我们有一个按钮,我们希望根据某些条件启用或禁用。此外,我们希望按钮在禁用时的悬停效果显示工具提示,解释其禁用原因。 目前,我们有这样的事情: export class NextButton exten
我有一个 OverlayTrigger 包装一个 Popover,其中包含一些表单输入和一个 Button 来保存数据并关闭。 save(e) { this.setState({ editing:
我对 react 有点陌生,我正在尝试在图像上显示工具提示。 Hello, world!)} triggerType="hover"> 但是
我尝试在react-bootstrap-table的格式化程序中使用react-bootstrap OverlayTrigger和Tooltip,并不断收到以下错误: OverlayTrigger's
我在使用 react-bootstrap (v1.0.0-beta.5) 呈现内容时遇到问题。我有一个带有按钮列表的主容器,每个按钮都用 OverlayTrigger(覆盖中的工具提示)包裹。由于整个
我正在使用来自 react-bootstrap 的 OverlayTrigger, Tooltip,并希望根据视口(viewport)更改工具提示位置。我现在使用默认的 placement,但是当我在
在 iOS Safari 中,带有 trigger="focus"的 OverlayTrigger 在点击外部时无法关闭。这是我的代码: What a popover
react-bootstrap 覆盖触发器的文档说覆盖属性可以是元素或文本。然而,每当我传递“工具提示”组件以外的东西时,它就不起作用。事实上,如果您将下面链接的网站上的代码示例修改为 div 而不是
我是一名优秀的程序员,十分优秀!