2017-05-11 13 views
0

私はonMouseHoverを使用するときに表示するテキストを追加しようとしていますが、使用することなく方法を見つけようとしているように、 CSSまたはJQuery。どのようにしてonMouseHoverに関数呼び出しに基づいてテキストを表示させることができますか?React/JS - onMouseOverテキストを変更する

function URL() { 
     return (
      <a href={url} onMouseOver={mouseOver()}>{mouseOver()}</a> 
     ); 
    } 
    function mouseOver() { 
     return (
      <p>Hovering</p> 
     ); 
    } 
+0

ホバリング状態です。そのため、ステートフルコンポーネントを作成する必要があります。ステートフルコンポーネントは、ホールドされているかどうかを保持し、状態に基づいていくつかのプレゼンテーションコンポーネントをレンダリングします。 BTW「CSSを使わずに方法を見つけ出そうとしています」なぜ?なぜあなたはjQueryを使いたくないのか理解していますが、 –

答えて

0

あなたは(あなたはコンストラクタ関数で初期化する必要がありますする)状態を変更するためにonMouseEnterとonMouseLeaveの組み合わせを使用することができます。例えば:

function URL() { 
     return (
     <a href={url} onMouseEnter={showText()} onMouseLeave={hideText()}>{this.state.text}</a> 
    ); 
    } 
    function showText() { 
     this.setState({text : "Hovering"}) 
    } 
    function hideText() { 
     this.setState({text : ""}) 
    } 
+0

'URL'はステートレスコンポーネントのようです。 –

2
class HoverableComponent extends React.Component { 
    constructor() { 
    super(); 
    this.state = { text : '' } 
    } 
    //set the text 
    onMouseover (e) { 
    this.setState({text : 'some text'}) 
    } 
    //clear the text 
    onMouseout (e) { 
    this.setState({text : ''}) 
    } 
    render() { 
     const {text} = this.state; 
     return (
     <div 
      onMouseEnter={this.onMouseover.bind(this)} 
      onMouseLeave={this.onMouseout.bind(this)}>{text}</div> 
    ) 
    } 
} 
+0

'setState'は組み込みメソッドですか? –

+0

あなたのコンポーネントは、setStateメソッドを持たせるためにReact.Componentから拡張する必要があります – AngelSalazar

関連する問題