javascript - 如何根据计时器在反应中显示和不显示跨度标签
问题描述
我试图在我的反应项目中显示而不显示跨度标记,具体取决于我传入的布尔值。
你能帮我确定如何传入一个我可以从 true 更改为 false 的值,它将显示或不显示 span 标签。
此外,当我尝试 2 种方法来禁用 div 并禁用 span 标签本身但它不起作用时。
我想要的预期操作是根据我传入的布尔值显示而不是显示微笑的表情符号。
对于上下文,该文件的扩展名为 .js 我正在使用 React 和 material-ui
<span role='img' aria-label='happy' disabled='true'>
</span>
<div className='heroTypedElement' style={{ display: false }}>
<span role='img' aria-label='sheep' disabled='true'>
</span>
</div>
解决方案
你可以使用 css
将这些添加到您的 CSS 中:
div.heroTypedElement > span[data-disabled ="true"] {
display:none
}
div.heroTypedElement > span[data-disabled ="false"] {
display:inline
}
正如@cloned 在评论中指出的,disabled 不是 span 标签,因此您可以制作自定义属性data-disabled
并将 JSX 更改为:
<span role='img' aria-label='happy' data-disabled='true'>
</span>
您还可以使用如下三元运算符
这里 react 会检查 'showEmoji' 是否为真,然后显示表情符号,否则返回空字符串。
return(
<div className='heroTypedElement' style={{ display: false }}>
<span role='img' aria-label='sheep'>
{showEmoji ?'':''}
</span>
</div>
)
或者您可以使用 && 运算符:
这里 javascript 将首先评估 showEmoji。如果它为真,那么将返回第二个语句而不检查,因为如果 showEmoji 为真,那么第二个语句将指示整个检查是真还是假,如果 showEmoji 为假,则 javascript 将停止检查,因为第二个语句是否为真无关紧要不是
return(<div className='heroTypedElement' style={{ display: false }}>
<span role='img' aria-label='sheep'>
{showEmoji && ''}
</span>
</div>
)
推荐阅读
- linux - 如何从 snap 访问 /usr/bin/?
- reactjs - 将多个文件中的代码合并到一个 useContext 文件中
- javascript - PayUMoney 与 nodejs 的集成
- php - 如何使用php获取具有相同键的关联数组的总和
- vb6 - 如何在vb6中使特定列可编辑
- javascript - 我可以接受带有 Javascript 的警报吗?
- javascript - 具有背景图像到 png 转换的 SVG/Canvas 提供黑色背景
- java - 当我在 google kubernetes 引擎上运行我的应用程序时,我得到 org.springframework.web.client.HttpClientErrorException$Forbidden: 403 Forbidden 错误
- c# - 在工作人员服务 .net 5 中检测到 Windows 关闭/注销/登录
- c++ - 在没有正则表达式的 C++ 中用专门的文字解析整数