React中的内联CSS样式:如何实现a:hover?
React中的内联CSS样式:如何实现a:hover?
我很喜欢React中的inline CSS模式,所以决定使用它。
然而,你不能使用:hover
和类似的选择器。那么在使用内联CSS样式的同时实现鼠标悬停高亮的最佳方法是什么呢?
#reactjs提出的一个建议是拥有一个Clickable
组件并像此示例中一样使用它:
Clickable
具有一个hovered
状态,并将其作为属性传递给链接。然而,Clickable
(按照我实现的方式)将Link
包装在一个div
中,以便它可以将 onMouseEnter
和onMouseLeave
设置给它。然而这使得事情变得有点复杂(例如,span
被包装在div
中的行为与span
不同)。
有更简单的方法吗?
admin 更改状态以发布 2023年5月23日
迟到了但是还是有解决方案的。你可以使用 \"&\"来定义鼠标悬停和nth Child等的样式: \n
day: { display: "flex", flex: "1", justifyContent: "center", alignItems: "center", width: "50px", height: "50px", transition: "all 0.2s", borderLeft: "solid 1px #cccccc", "&:hover": { background: "#efefef" }, "&:last-child": { borderRight: "solid 1px #cccccc" } },
我认为onMouseEnter和onMouseLeave是可行的方法,但我不认为需要一个额外的包装组件。这是我的实现方式:
var Link = React.createClass({ getInitialState: function(){ return {hover: false} }, toggleHover: function(){ this.setState({hover: !this.state.hover}) }, render: function() { var linkStyle; if (this.state.hover) { linkStyle = {backgroundColor: 'red'} } else { linkStyle = {backgroundColor: 'blue'} } return( Link ) }
然后,您可以使用悬停的状态(true/false)来改变链接的样式。