2
クラスをDomノードに適用できませんでした。このコードでは、すべてのDOMノードにクラスが適用されます。onMouseEnterの単一の要素に反応クラスを適用する
import { Component } from 'react';
export default class App extends Component {
constructor(props){
super(props)
this.state = {
active: false
}
}
onMouseEnter(){
this.setState({active:true})
}
render(){
const items = [1,2,3,4,5];
return (
<div>
{items.map((obj,i) => <div key={i} className={this.state.active ? 'active' : ''} onMouseEnter={this.onMouseEnter.bind(this)}>{obj}</div>)}
</div>
);
}
}
ここで何が間違っていますか?また、どのようにonMouseLeave
を行うには? this.setState({active:false})
をfalseに設定するだけですか?
:
この質問に対する私の答えにあなたのコメントは意味をなさないonMouseEnterが既に条件を持っているのでonMouseLeaveを実行する。しかし、もし私が滞在するためにアクティブなクラスにしたいですか? – Mellisa
https://fiddle.jshell.net/re1f0to8/ここには、私が何を記述しているかの作業フィドルです。 – Maxwelll
フィドルに感謝します!しかし、もし私がクラスを滞在させたいなら、どうしたらいいですか? onMouseLeaveを削除しましたが、onMouseEnter関数に条件があるため、https://fiddle.jshell.net/8wsr7xa1/のままになりません。 – Mellisa