reactjs - Styled Components - 通过 props 传递的内容(内容)
问题描述
我正在尝试根据 props 值切换 div (样式化组件)内的文本。这个想法很简单:状态改变,它的值转到样式组件的道具,然后根据它是什么,内容进行调整。不工作的是之前/之后的内容。知道为什么吗?
样式组件:
export const Info = styled.div`
padding: 5px;
margin-top: 15px;
&::after {
content: ${props => props.content === "intro" && "hello"};
}
`
JS
const CheckNumber = () => {
const [msg, setMsg] = useState("intro")
return (
<Info content={msg}/>
)
}
export default CheckNumber
解决方案
您当前的代码生成样式
content: hello
那是无效的CSS。您需要额外的引号(JS 级别的一对和 CSS 的嵌套引号):
&::after {
content: ${props => props.content === "intro" && "'hello'"};
}
PS通过复制发现真的很意外content
:
&::after {
content: "aaaa";
content: ${props => props.content === "intro" && "hello"};
}
因为浏览器只是没有创建“::after” prseudoelement 而content
无效 - 所以我们无法检查实际生成的样式。
推荐阅读
- build.gradle - 如何通过build.gradle设置环境变量LD_LIBRARY_PATH生成protobuf代码
- apache - 搜索结果中包含的更新字段上的 SOLR 索引
- python - 如何将相同的键值字典拆分为不同列表中具有相同键的字典列表?
- java - Gradle 的 Java 项目 API 不提供在 project.sync 中保留 API 的访问权限
- java - 我想知道,有没有更有效的方法来做到这一点
- python - Python - 镜像数据集
- wordpress - 他们是在用户导航时不刷新或加载整个页面的一种方式吗?
- amazon-web-services - AWS - 通过 CLI 查明安全组是否具有 ALL TCP 规则
- python - 如何从 def __init__(self) 调用单独的函数:
- angular - 以角度在两个兄弟组件之间通信事件