2016-10-22 6 views
0

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要素にidonClickイベントを追加した場合...

<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)のいずれかを試すよう

+0

申し訳ありませんが、私の質問を明確に、編集を参照してください。 – marsrover

+2

これはreactjsの問題のようには見えません。この回答を確認する:http://stackoverflow.com/questions/2709994/javascript-getting-element-in-dom-tree-when-mouseover – OriolBG

答えて

0

わかりません3(es-next):

onSidebarOptionClick = (e) => { 
    console.log(e.target.id); 
} 
0

onOptionClickを小道具として<MenuOption/>に渡すときは、this.porops.onOptionClickと宣言する必要があります。

<MenuOption/>は、このことができます。この

<div id={title} className="row menu-option" onClick={thi.props.onOptionClick}> 
    <p>{title}</p> 
</div> 

希望のようになります!

関連する問題