【发布时间】:2019-01-22 22:35:33
【问题描述】:
所以我试图通过改变状态来改变元素颜色 onHover,问题是所有元素都改变了,因为状态。 如何做到只有一个元素会改变?
问题链接: https://repl.it/@RokasSimkus/TediousTestyOctagons
class App extends Component {
state={
hover:false
}
render() {
let onHover = () =>{
this.setState({hover:true})
};
let onOut = () =>{
this.setState({hover:false})
};
return (
<div className="App">
<a onMouseOver={onHover} onMouseOut={onOut} style={this.state.hover? {color:'red', fontSize:'50px', cursor:'pointer'}: {color:'blue', fontSize:'50px', cursor:'pointer'}}>CHANGE LANGUAGE</a>
<br/>
<a onMouseOver={onHover} onMouseOut={onOut} style={this.state.hover? {color:'orange', fontSize:'50px', cursor:'pointer'}: {color:'blue', fontSize:'50px', cursor:'pointer'}}>DO SOMETHING ELSE</a>
<br/>
<a onMouseOver={onHover} onMouseOut={onOut} style={this.state.hover? {color:'grey', fontSize:'50px', cursor:'pointer'}: {color:'blue', fontSize:'50px', cursor:'pointer'}}>AND ELSE</a>
</div>
);
}
}
【问题讨论】:
-
简单的答案是改用 CSS。 React 的答案是为每个元素使用单独的状态变量。
标签: javascript reactjs hover onmouseover