【发布时间】:2015-04-06 13:31:36
【问题描述】:
我非常喜欢inline CSS pattern in React 并决定使用它。
但是,您不能使用:hover 和类似的选择器。那么在使用内联 CSS 样式时实现高亮显示的最佳方法是什么?
#reactjs 的一个建议是拥有一个 Clickable 组件并像这样使用它:
<Clickable>
<Link />
</Clickable>
Clickable 有一个hovered 状态并将其作为道具传递给链接。但是,Clickable(我实现它的方式)将Link 包装在div 中,以便它可以设置onMouseEnter 和onMouseLeave。这让事情变得有点复杂(例如,span 包裹在 div 中的行为与 span 不同)。
有没有更简单的方法?
【问题讨论】:
-
你是绝对正确的 - 使用内联样式模拟 :hover 等选择器的唯一方法是使用
onMouseEnter和onMouseLeave。关于它的确切实施 - 这完全取决于你。查看您的具体示例,为什么不将<Clickable/>包装器设为span? -
我建议使用外部样式表和 ExtractText Webpack 插件,如果您希望使用 ServerRender,这将帮助您更长时间地运行,否则您可以尝试 Radium github.com/FormidableLabs/radium
-
目前 Styled Component 是在 react 中模拟 css/scss 的所有可能性的最佳解决方案。
标签: reactjs