React-dnd: useDrop DropTargetHookSpec受け入れタイプには、関数タイプを含める必要があります

作成日 2020年08月20日  ·  3コメント  ·  ソース: react-dnd/react-dnd

バグを説明する
useDropのドキュメントによると、仕様オブジェクトのメンバーacceptは、「文字列、ES6シンボル、いずれかの配列、またはコンポーネントの小道具を指定してこれらのいずれかを返す関数」です。
ただし、コードでは、 acceptTargetTypeとして定義されています。これは、 string | symbolまたはそれらの配列です。

予想される行動
acceptは、 TargetTypeを返す関数が可能なタイプである必要があります。

追加のコンテキスト
acceptを動的に更新したい。 acceptuseDrop $の値を変更することでこれが可能になると思いましたが、これは機能しません。 私は現在、これを他の方法で行う方法がわかりません。また、ドキュメントに記載されている動作を見つけることができません。

最も参考になるコメント

これが理想的な解決策ではないことはわかっていkeyが、これが解決され、ターゲットの型生成関数を使用できるようになるまで、回避策は、ターゲットをドロップします。 これにより、許容可能なタイプを変更すると、確実に再マウントされます。 今日、私はこの正確な問題に遭遇しました。

全てのコメント3件

これが理想的な解決策ではないことはわかっていkeyが、これが解決され、ターゲットの型生成関数を使用できるようになるまで、回避策は、ターゲットをドロップします。 これにより、許容可能なタイプを変更すると、確実に再マウントされます。 今日、私はこの正確な問題に遭遇しました。

私もこれに気づきましたが、 canDropを使用して回避しました。

これが理想的な解決策ではないことはわかっていkeyが、これが解決され、ターゲットの型生成関数を使用できるようになるまで、回避策は、ターゲットをドロップします。 これにより、許容可能なタイプを変更すると、確実に再マウントされます。 今日、私はこの正確な問題に遭遇しました。

このコメントをエコーするだけです。ブール値に基づいて同じコンポーネントの2つのバージョンをレンダリングしているターナリがある状況がありました。 賢い反応は、それらが同じコンポーネントであるが、異なる小道具を持っていることに気づきました。 このターナリを使用して、ブール値に基づいてマウント/アンマウントする独立したノードとしてレンダリングしようとしましたが、実際には再マウントではなく再レンダリングされていました。 したがって、 acceptは新しい小道具ではなく元の小道具に基づいており、 useDropはその小道具の変更に基づいて更新されません。

このページは役に立ちましたか?
0 / 5 - 0 評価