忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2025/02    01« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  »03

翻訳 - React onDrop is not firing

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

翻訳 - React onDrop is not firing

reactjs - React onDrop is not firing - Stack Overflow の翻訳。恥ずかしながら同じ問題にひっかかった。


下記の React と TypeScript で書いたコードを試しているのですが、onDragEnter と onDragOver は動くのに onDrop だけ動きません。

import * as React from 'react';

export class FileZone extends React.Component {

  onDragOver = (e) => {
    let event = e as Event;
    event.stopPropagation();
  }

  onDragEnter = (e) => {
    let event = e as Event;
    event.stopPropagation();
  }

  onFileDrop = (e) => {
    let event = e as Event;
    event.stopPropagation();

    console.log("onFileDrop");
    alert("dropped")
  }

  render() {
    return (
      <div
        onDragEnter={this.onDragEnter}
        onDragOver={this.onDragOver}
        onDrop={this.onFileDrop}>
        Drag and drop file here
      </div>)
  }
}

質問日時 2018年05月08日 09:13

質問者 Prasob

自力で解決しました。諸々の理由で onDragOver を次のように書き直す必要が有りました。

  onDragOver = (e) => {
    let event = e as Event;
    event.stopPropagation();
    event.preventDefault();
  }

質問日時 2018年05月08日 12:37

返答者 Prasob


同じ問題にあたりましたが、同じ方法で直りました。ただ、これって React のバグじゃないですか? Native の JavaScript だとそのような問題は起こりません

質問日時 2018年05月20日 10:49

返答者 Ematipico


いえ、これは React のバグではなく、ドラッグアンドドロップイベントの挙動です。 dragOver のデフォルト挙動は現在の Drag 動作をリセットする、というものです。そのため、それをキャンセルしなければ Drop は機能しません。もう少し知るためには MDN をご覧になるのが良いでしょう。より正確な情報を含むサンプルがあります。

質問日時 2018年10月13日 09:06

返答者 Alex D

PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R