2016-07-11 21 views
0

アップロードする前に画像をアップロードして表示できるコンポーネントを作成したいと思います。ファイルの入力フィールドは非表示になっています。代わりに、ユーザーがクリックできる場所にdivが表示され、入力フィールドでclickイベントが発生し、ユーザーは画像を挿入できます。Reactjs onChangeが機能しません

これは問題なく動作しますが、ユーザーが画像を挿入すると、onChange()は発生しません。私は間違って何をしていますか?

export default class CreateArticlePublish extends React.Component { 
    insertImage =() => { 
     article_image: this.refs.article_image.click(); 
    } 
    displayImage = (event) => { 
     imagePlaceholder: this.refs.imagePlaceholder; 
     var url = URL.createObjectURL(event.target.files[0]); 
     imagePlaceholder.style.backgroundImage = "url(" + url + ")"; 
    } 
    render() { 
     return(
      <div> 
       <div id="publish-metadata"> 
        <form> 
         <label for="article_image">Image for the article</label> 
         <input type="file" name="pic" id="article_image" ref= "article_image" accept="image/*" /> 
         <div id="image_placeholder" onClick={this.insertImage} onChange={this.displayImage} ref="imagePlaceholder"> 
          <p>Click here to add an image</p> 
         </div> 
        </form> 
       </div> 
      </div> 
     ); 
    } 
} 
+3

の入力にのonChangeを添付しますか? – Mary

+0

@Maryはい。それはそれだった。私は前に気付かなかった。ありがとうございました。 – Robin

+0

@maryは、ロビンがそれを受け入れることができるように、この回答を投稿する必要があります – Dave

答えて

0

はたぶんのonChangeがにする必要があります代わりに、基礎となるのdiv

関連する問題