React-dnd getDecolatedComponentInstance() 不是一个函数

2024-01-12

我目前正在 React 中构建文件上传和排序功能。

我使用了以下示例:

  • https://gaearon.github.io/react-dnd/examples-chessboard-tutorial-app.html https://gaearon.github.io/react-dnd/examples-chessboard-tutorial-app.html
  • https://github.com/okonet/react-dropzone https://github.com/okonet/react-dropzone
  • https://github.com/gaearon/react-dnd-html5-backend https://github.com/gaearon/react-dnd-html5-backend

一切都工作正常,直到 eslint 告诉我不要在下面的存储库的 js/componenets/File.jsx 中使用 findDOMNode。

https://github.com/GregHolmes/react-dnd-dropzone https://github.com/GregHolmes/react-dnd-dropzone

当我尝试重新排序图像的位置时会发生这种情况。即,将第二张图像拖到第一位置。

经过搜索,我找到了一个有关如何解决此问题的示例。然而这个例子是行不通的。这个例子是:React DnD:避免使用 findDOMNode https://stackoverflow.com/questions/40499267/react-dnd-avoid-using-finddomnode#

与他们的示例一样,我尝试了以下操作:

js/组件/File.jsx:35

<div ref={node => this.node = node} style={{ ...style, opacity }}>

然后在同一个文件中取消注释第 62 行:

const rawComponent = component.getDecoratedComponentInstance();

并替换(第 71 行):

const hoverBoundingRect = findDOMNode(component).getBoundingClientRect();

与(第 70 行):

const hoverBoundingRect = rawComponent.node.getBoundingClientRect();

然后我得到:

getDecoratedComponentInstance() is not a function

有谁知道我该如何解决这个问题?对于我的代码中的混乱,我深表歉意。我是个新手,一直在努力保持事情尽可能干净。

Edit

我以为我已经通过下面的内容解决了问题。然而,这样做意味着我无法将图像拖到另一个框中。切换 let exportFile = DragSource..... 与 DropTarget,给了我函数调用不是函数的最初问题。

在我的 File.jsx 文件的底部。我有:

export default flow(
DropTarget("FILE", fileTarget, connect => ({
    connectDropTarget: connect.dropTarget()
})),
DragSource("FILE", fileSource, (connect, monitor) => ({
    connectDragSource: connect.dragSource(),
    isDragging: monitor.isDragging()
}))
)(File);

我将其替换为:

function collectDragSource(connect, monitor) {
    return {
        connectDragSource: connect.dragSource(),
        isDragging: monitor.isDragging()
    };
}

function collectDropTarget(connect) {
    return {
        connectDropTarget: connect.dropTarget()
    };
}

let exportFile = DragSource('file', fileSource, collectDragSource)(File);
exportFile = DropTarget('file', fileTarget, collectDropTarget)(exportFile);

export default exportFile;

您实际上不需要创建一个rawComponent变量和调用getDecoratedComponentInstance无论如何,它不作为组件上的方法存在。

The node可以简单地访问component实例通过node财产这意味着你可以简单地做

const hoverBoundingRect = component.node.getBoundingClientRect();

顺便说一句,你似乎也有依赖性lodash and microevent重复在你的package.json file.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React-dnd getDecolatedComponentInstance() 不是一个函数 的相关文章

随机推荐

  • 如何暂时禁用EGit?

    当做类似的事情时git repack从命令行 包被锁定并且无法删除 从而使存储库大小加倍 罪魁祸首很可能是 EGit 保持文件打开 这在 Windows 中是不好的 退出 Eclipse 是我所知道的唯一解决方法 我发现了本文 https
  • AWS Glue 截断 Redshift 表

    我创建了一个 Glue 作业 将数据从 S3 csv 文件 复制到 Redshift 它可以工作并填充所需的表 但是 我需要在此过程中清除表 因为在该过程完成后我留下了重复的记录 我正在寻找一种方法将这种清除添加到胶水过程中 任何意见 将不
  • 从 Android 应用程序分享视频

    我们是一个视频托管门户 用户可以根据观看次数上传视频并从中获利 我们最近推出了一款 Android 应用程序 并尝试将 分享 按钮集成到每个视频中 这是我们放置的代码 Intent intent new Intent try URL url
  • 接口和标头

    今天我遇到了 C 接口的概念 我有一个希望很简单的问题来看看我是否理解它们 它们与 C 头文件非常相似吗 我的意思是 根据我得到的信息 您定义了类的主干 但没有实际定义它的功能 这有点类似于标头 对吗 我阅读了整个 MSDN 定义 但它并没
  • Java循环效率

    我正在比较 Java 中嵌套的 for while 和 do while 循环的效率 并且遇到了一些奇怪的结果 需要帮助理解 public class Loops public static void main String args in
  • Python 中可处理大指数的贝塞尔函数

    我有一些代码使用一阶和二阶 iv 和 kv 的修改贝塞尔函数 令人烦恼的是 它们似乎有限制 即 iv 0 713 和 kv 0 697 分别加 1 分别得到无穷大和 0 这对我来说是一个问题 因为我需要使用高于此的值 通常高达 2000 或
  • 如何阻止文本被选择?

    在我的网络应用程序中 用户有时可以多次单击同一按钮 跳过消息和内容 从而导致被选中 那么如何使用 Javascript jQuery 来防止这种情况发生 你不需要为此编写脚本 这里是 css webkit touch callout non
  • 在 C# 中使用本地 DTD 文件验证 XML 文件时出现问题

    我正在尝试验证 XML 文件 我正在使用这个代码 XmlReaderSettings settings new XmlReaderSettings settings ProhibitDtd false settings Validation
  • Nodejs 和 php 生成的不同 HMAC

    base64 encode the binary result of the HMAC computation merchantSig base64 encode hash hmac sha256 signData pack H hmacK
  • 在 R 中生成数字

    在R中 如何生成N个平均值为X 中位数为Y 至少接近 的数字 或者更一般地说 是否有一个算法可以实现这一点 有无限多个解决方案 近似算法 生成低于中位数的 n 2 个数字 生成高于中位数的 n 2 个数字 添加您想要的中位数并检查 添加一个
  • 如何改变javafx中窗格的颜色?

    我想改变 a 的颜色Pane我得到的String来自用户 我该如何设置这个String作为我的窗格中的背景颜色 Code colorField setOnKeyTyped new EventHandler
  • 使用过多 JavaScript 有什么坏处?

    我想知道在网页中使用过多 JavaScript 代码有哪些缺点 例如 我将为我的下拉菜单 选项卡和折叠面板使用 jQuery 框架 以及用于我的日历的其他 JavaScript 尽管有可用的使用 jQuery 的日历 和用于其他内容的其他
  • KnockoutJs,第三方模板库,JsRender

    Knockout 与最新的 JsRender 版本兼容吗 template binding Daniel Knockout 的模板目前与 jsRender 不兼容 我尝试过 jsRender 模板引擎here http jsfiddle n
  • 将数据库放入android项目中

    我在 stackoverflow 上读到了大约 5 个线程 但仍然不知道该怎么做 我已经有 sqlite 数据库 但我不知道将它放在我的 android studio 项目中的哪里 我想要随应用程序一起下载数据库 它并不假装是最好的方法 但
  • Node.js 全局变量

    我在这里问 Node js 需要继承吗 https stackoverflow com questions 5348685 node js require inheritance 有人告诉我 我可以通过省略变量来将变量设置为全局范围 这对我
  • 如何在黑莓中使BrowserField的背景透明

    我在用BrowserField的组成部分RIM BB 它现在显示白色背景 我想要制作一个透明背景 这样它就可以与经理的背景颜色相匹配 我曾尝试使用下面的代码 但这不起作用 BrowserField contentField new Brow
  • 为什么字符串类型的默认值是null而不是空字符串?

    测试我所有的琴弦是很烦人的null在我可以安全地应用像这样的方法之前ToUpper StartWith etc 如果默认值为string如果是空字符串 我就不必测试 而且我觉得它与其他值类型更加一致 例如int or double例如 此外
  • Ansible jenkins_plugin 模块返回“HTTP 错误 403:请求中未包含有效的 crumb”

    我使用 Ansible v 2 8 作为 Packer 模板背后的配置程序来为 Jenkins 主节点构建 AMI 对于以前的版本 剧本已成功通过 然而 从 Jenkins 版本 2 176 3 开始 jenkins plugin模块一直在
  • 为什么spring找不到Spring Cloud Stream创建的@Source bean通道?

    我正在尝试使用 Spring Cloud Stream 来发布和使用 Kafka 消息 我一直在研究文档这里关于访问绑定通道 http docs spring io spring cloud stream docs Chelsea SR2
  • React-dnd getDecolatedComponentInstance() 不是一个函数

    我目前正在 React 中构建文件上传和排序功能 我使用了以下示例 https gaearon github io react dnd examples chessboard tutorial app html https gaearon