React-dnd: useDrop DropTargetHookSpec 接受类型应该包含一个函数类型

创建于 2020-08-20  ·  3评论  ·  资料来源: react-dnd/react-dnd

描述错误
的 useDrop 文档说规范对象成员accept是“一个字符串,一个 ES6 符号,一个数组,或者返回其中任何一个的函数,给定组件的道具。”。
但在代码中, accept被定义为TargetType ,即string | symbol或它们的数组。

预期行为
accept应该是可以返回TargetType的函数的类型。

附加上下文
我想动态更新accept 。 我认为这可以通过更改 $#$ useDrop $#$ 的accept值来实现,但这不起作用。 我目前看不到如何执行此操作,也找不到文档描述的行为。

最有用的评论

我知道这不是一个理想的解决方案,但是在解决这个问题并且我们可以拥有目标类型生产功能之前,解决方法是在包含您的组件上使用等于您接受的类型的key属性放下目标。 这将确保在您更改可接受的类型后重新安装它。 我今天自己遇到了这个确切的问题。

所有3条评论

我知道这不是一个理想的解决方案,但是在解决这个问题并且我们可以拥有目标类型生产功能之前,解决方法是在包含您的组件上使用等于您接受的类型的key属性放下目标。 这将确保在您更改可接受的类型后重新安装它。 我今天自己遇到了这个确切的问题。

我也注意到了这一点,但通过使用canDrop解决了这个问题。

我知道这不是一个理想的解决方案,但是在解决这个问题并且我们可以拥有目标类型生产功能之前,解决方法是在包含您的组件上使用等于您接受的类型的key属性放下目标。 这将确保在您更改可接受的类型后重新安装它。 我今天自己遇到了这个确切的问题。

只是为了回应这个评论:我有一种情况,我有一个三元组,它基于布尔值呈现同一组件的两个版本。 聪明的反应意识到它们是相同的组件但具有不同的道具。 尽管我尝试使用此三元组将它们渲染为基于布尔值安装/卸载的独立节点,但它实际上是重新渲染而不是重新安装。 因此, accept是基于原始道具,而不是新道具,并且useDrop不会根据道具更改而更新。

此页面是否有帮助?
0 / 5 - 0 等级