2017-05-17 9 views
0

私は、なぜonloadイベントが呼び出されないのかを理解しようとしています。すべてがエラーなく構築され、同様のonLoadイベントは別のコンポーネントで機能します。onloadイベントが発生しない

class Work extends React.Component { 
    constructor(props) { 
     super(props); 


     this.state = { 
      allImgLoaded: false, 
      boxHovered: false, 
      projects: projects 
     } 
     this.handleWorkLoad = this.handleWorkLoad.bind(this); 

    } 

    componentWillMount() { 
     window.scrollTo(0,0); 
    } 

    componentDidMount() { 
     this.handleWorkLoad() 
    } 

    handleWorkLoad() { 
     console.log("called"); 
     this.setState({ 
      allImgLoaded: true 
     }) 
    } 

    render() { 

     return (
      <div className={this.state.allImgLoaded ? "work" : "work invisible"}> 
      </div>  
     ); 
    } 
}; 

export default Work; 

なしあり: エクスポートクラスの仕事はReact.Component {

constructor(props) { 
    super(props); 


    this.state = { 
     allImgLoaded: false, 
     boxHovered: false, 
     projects: projects 
    } 
this.handleWorkLoad = this.handleWorkLoad.bind(this); 

    } 

componentWillMount() { 
    window.scrollTo(0,0); 
} 

handleWorkLoad() { 
    console.log("called"); 
    this.setState({ 
    allImgLoaded: true 
    }) 
} 

    render() { 

    return (
    <div className={this.state.allImgLoaded ? "work" : "work invisible"} onLoad={this.handleWorkLoad}> 

     </div>  
    ); 
    } 
}; 

export default Work; 

答えて

1

では、あなたがあなたのコンポーネントが、それは、位相をロードしています終えた後に特定のコードを実行することができますcomponentDidMountメソッドを持って反応を拡張しますonLoadのイベントdivのイベントが反応します。

+0

divが複数の画像の親である場合はどうなりますか?それは私がそれをカットしたが、ここの場合です。すべての画像にonLoadを入れて、すべてがロードされているかどうかを調べる必要がありますか?不自然だと感じる – Sebastian

+0

reactの 'img'要素に' onload'イベントがありますが、 'div'要素はそうではありません。あなたの質問について - はい、すべてのimgタグについてそうする必要があります(これは全く反応しないで同じケースになります) – Dekel

関連する問題