2016-10-27 6 views
0

私は反応プロジェクトで材料uiからカードを使用しています。私はカード、onMouseOverとonMouseOutの2つの機能を使用しようとしています。しかし、私のコードは私に "Uncaught TypeError:未定義のプロパティ 'onMouseOver'を読むことができないというエラーを出しています。ここに私のコードからその部分の要約があります。不確定カードのプロパティを読み取ることができません。材料ui

class ExpandableCard extends Component { 
    constructor(props) { 
     super(props); 
     this.state = {shadow: 1} 
    } 

    onMouseOver =() => this.setState({shadow: 3}); 

    onMouseOut =() => {this.setState({shadow: 1}) 
    }; 

    render(){ 
     var Populate = this.props.mediaFiles.map(function (value) { 
      return (
      <MuiThemeProvider> 
       <Card key = {value.id} 
         onMouseOver={this.onMouseOver} 
         onMouseOut={this.onMouseOut} 
         zDepth={this.state.shadow} 
       > 

答えて

0

あなただけでrender方法でmap関数の内部でコンテキスト(これを)行方不明の基本的なJavaScriptの問題を抱えているようです。

mapのレンダリング機能を矢印機能に変更することをお勧めします(このようにして、外側のコンテキストを内側の機能に保つことになります)。 :)

render() { 
    var Populate = this.props.mediaFiles.map((value) => { 
    return (
     <MuiThemeProvider> 
     <Card key = {value.id} 
      onMouseOver={this.onMouseOver} 
      onMouseOut={this.onMouseOut} 
      zDepth={this.state.shadow} 
     > 
     ... 
+0

Worked。どうもありがとう。しかし、私はそれが働いた理由はありませんでした。矢印関数は、通常の関数を表す別の方法です。 – ApurvG

+0

矢印関数docs、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functionsを見てください。 '' '矢印関数はこのコンテキストを独自に作成しないので、囲みコンテキストからの意味は です.''' –

関連する問題