div
要素にonClick
イベントが接続されている場合、ターゲットIDが渡されないReact.jsアプリケーションに問題があります。div要素にonClickするとターゲットIDが渡されません
これは私がコンポーネントを追加する方法です:
<MenuOption title="Users" onOptionClick={this.onOptionClick}/>
これは私のMenuOption
コンポーネントのJSX-一部です:あなたは、私が単に小道具のタイトルを割り当てています見ることができるように
<div id={title} className="row menu-option" onClick={onOptionClick}>
<p>{title}</p>
</div>
idとonClick
イベントです。
戻る親コンポーネント、onClick
メソッドの実装では:それは常に未定義記録しますので、
onSidebarOptionClick(e) {
console.log(e.target.id);
}
これが動作するようには思えません。しかし
、私が代わりに私のp
要素にid
とonClick
イベントを追加した場合...
<div className="row menu-option">
<p id={title} onClick={onOptionClick}>{title}</p>
</div>
...それすべてのクリックでちょうど予想通り、正しいIDログ機能します。
なぜ、clickイベントがdivに関連付けられている場合、idが渡されないのですか?
私はES6とバベルを使用しています。
私はこのようにそれらを宣言し、私は「ダム」のコンポーネントを使用していることを明確にする必要があります、それを使用しているとき{this.props.title}
を使用する必要はありません理由です
const MenuOption = ({title, onOptionClick})
...。
<MenuOption title="Users" onOptionClick={this.onOptionClick.bind(this)}/>
方法2(ES6):
constructor(props) {
super(props);
this.onOptionClick = this.onOptionClick.bind(this);
}
方法あなたの質問constructor
を逃したがfollowing--
方法1(JSX)のいずれかを試すよう
申し訳ありませんが、私の質問を明確に、編集を参照してください。 – marsrover
これはreactjsの問題のようには見えません。この回答を確認する:http://stackoverflow.com/questions/2709994/javascript-getting-element-in-dom-tree-when-mouseover – OriolBG