CSVファイルをタグ付きでアップロードすると、アップロード成功後にコンソールにエラーが表示されます。
調査結果です。
根本的な問題は、現在のロジックではモーダルが速すぎるタイミングで閉じられることです。
エラーは uppy-upload.js で発生します。
要素(uppy-upload)がすでに破棄されているため、プロパティの設定に失敗しました。
これはどのようにして起こるのでしょうか? this._uppyInstance?.cancelAll();
参考までに、_reset は _allUploadsComplete から呼び出されます。
アップロードが成功した場合、関数の順序は次のようになります。
uploadDone → _allUploadsComplete → [ _reset ]
uploadDone が呼び出されると、モーダルはすぐに閉じられます。
これは、uppy-upload 要素がフレームの最後に破棄されることを意味します。
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/admin/addon/components/tags-uploader.js#L22-L26
this._uppyInstance?.cancelAll(); に戻ります。これにより、以下のイベントがトリガーされます。
run() のため、要素が破棄された 後に プロパティが設定されるため、失敗します。
これは軽微なリグレッションです。ここで導入されました:
uppy-upload.js
tags-upload.js
考えられる解決策:
uploadDone() {
this.refresh();
this.dialog
.alert(I18n.t("tagging.upload_successful"))
.finally(() => this.closeModal());
}
this._uppyInstance.on("file-removed", (file, reason) => {
// cancel-all イベントは特別に処理するため、
// ここで何かを行う必要はありません。このイベントは、
// アップロードハンドラによって処理されるファイルがある場合にも発生します。
if (reason === "cancel-all") {
return;
}
run(() => {
これより良い解決策があるかどうかはわかりません。そのため、ここに投稿します。
これは非ブロッキングの軽微な問題にしては多くのテキストですが、当初は明らかではありませんでした。 
「いいね!」 3