我非常喜欢React中的内联CSS模式,并决定使用它
但是,不能使用:hover和类似的选择器。那么,在使用内联CSS样式时,实现悬停高亮显示的最佳方法是什么
#reactjs的一个建议是使用一个可点击的组件,并像这样使用它:
<;可点击>;
<;链接/>;
</可点击>;
可点击有一个悬停状态,并将其作为道具传递给链接。但是,可点击的(我实现它的方式)将链接包装在div中,这样它就可以设置onMouseEnter和onMouseLeave。这使得事情有点复杂(例如,包装在div中的span的行为与span不同)
有没有更简单的方法
我认为onMouseEnter和onMouseLeave是可行的方法,但我认为不需要额外的包装器组件。下面是我如何实现它的:
var Link=React.createClass({
getInitialState:函数(){
返回{hover:false}
},
toggleHover:function(){
this.setState({hover:!this.state.hover})
},
render:function(){
var-linkStyle;
if(this.state.hover){
linkStyle={backgroundColor:'red'}
}否则{
linkStyle={backgroundColor:'blue'}
}
返回(
<;div>;
<;a style={linkStyle}onmouseinter={this.toggleHover}onMouseLeave={this.toggleHover}>;Link<;/a>;
<;/div>;
)
}
然后可以使用悬停状态(true/false)更改链接的样式