reactjs - 为什么我不能对某些 React.Components 使用 className 属性?
问题描述
CSS 样式类在这里工作:
<span className="cake">Cake</span>
但是,这失败了(好吧,浏览器中没有样式更改):
<Nav.Link href="/xyz" className="cake">Cake</Nav.Link>
为什么 className 属性有时只起作用?
您应该如何向<Nav.Link>
s 添加自定义样式,例如仅右对齐 Logoff 样式?
解决方案
浏览器是否选择该样式取决于如何Nav.Link
定义。
例如,如果它是这样定义的(使用styled-components
):
const NavLink = styled.div`
/* some styles */
`;
它会起作用,因为所有道具都传递给div
.
但是,如果它是这样定义的:
const NavLink = ({ href, children }) => {
return <a href={href}>children</a>;
};
它会吞下去className
。
通常,一个好的做法是将所有额外的道具传递到层次结构中,如下所示:
const NavLink = ({ href, children, ...rest }) => {
return <a href={href} {...rest}>children</a>;
};
但我们永远不知道它是如何定义的。(您最好检查 中的定义node_modules
。)
推荐阅读
- pyspark - PySpark 中数据帧的损坏循环
- html - 我想在代码中使用伪元素来处理背景图像的不透明度。我怎么做?
- python - 随机化程序:如何根据 random.choice() 的输出从对应的文件中获取数据?
- mysql - 字符集原则问题
- php - PHP 验证如何转换为 Laravel 验证?
- python - Python3中包含字典的列表的排序
- publish-subscribe - 是否可以在 gcloud PubSub 中提供一条消息来增加同一订阅的实例
- deep-learning - 运行到 CUDA 内存不足
- json - 我如何压缩更大的数据(5MB JSON)并作为生产者发送到 Kinesis 流并在使用时解压缩它?
- javascript - 我的控制台中跨站点 cookie 的这些警告是什么?