微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有人可以帮我将打字稿代码转换为 React 代码吗

如何解决有人可以帮我将打字稿代码转换为 React 代码吗

一个叫做 react-data-grid 的包。在该特定包上有一个示例 table,但代码在 TypeScript 中,并且此特定版本的文档也不在那里。我试图将打字稿转换为 React。一切都很好,直到我想实现拖放。一些错误即将到来,我认为这个错误是因为我以错误的方式导入了一些东西。你能告诉我我哪里做错了吗? 这是Sandbox link。 我本地构建中的错误出现在第 44 行的 RoWrender.js 上。 我还在那里包含了打字稿文件。 如果您只是取消注释 sandbox 中 App.js 组件的第 72-74 行,您也可以看到错误

解决方法

  • 将 .ts 文件重命名为 .tsx 文件。在另一种情况下,TypeScript 将无法理解 <div> <Row> 和其他 react 元素
  • 将关于 react-data-grid 的导入更新为:import { Row,RowRendererProps } from "react-data-grid";
  • 更新您的导入 import { useCombinedRefs } from ... 以从正确的位置获取钩子。
  • 如果您看到有关 React 默认导入的错误 - 将 import React from 'react' 更改为 import * as React from "react"; 或更新 tsconfig 以支持 synthetic imports

useCombinedRefs - 是未导出的内部函数,因此您不能直接使用它。选项#1 - 自己写。选项#2 找出您尝试使用内部函数的原因。应该是更好的方法。

function useCombinedRefs(...refs) {
  return useCallback(handle => {
    for (const ref of refs) {
      if (typeof ref === 'function') {
        ref(handle);
      } else if (ref !== null) {
        ref.current = handle;
      }
    }
  },refs);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。