typescript - 我们如何在 Nextjs 动态导入中输入forwardRef?

标签 typescript next.js typescript-typings

这是我的代码。我需要输入forwardRef,但我没有得到它,事实上我不知道到底在哪里输入它。有人能帮我吗?我收到错误

  1. 类型“{}”上不存在属性“forwardedRef”。

  2. 类型 '{forwardedRef: MutableRefObject; }' 不可分配给类型“IntrinsicAttributes”。 类型“IntrinsicAttributes”上不存在属性“forwardedRef”。

    import type { NextPage } from "next";
    import dynamic from "next/dynamic";
    import { useRef } from "react";
    
    import "react-quill/dist/quill.snow.css";
    
    const ReactQuill = dynamic(
      async () => {
        const { default: RQ } = await import("react-quill");
    
        return ({ forwardedRef, ...props }) => <RQ ref={forwardedRef} {...props} />;
      },
      {
        ssr: false,
      }
    );
    
    const Home: NextPage = () => {
      const quillRef = useRef(null);
    
      return <ReactQuill forwardedRef={quillRef} />;
    };
    
    export default Home;

最佳答案

import type { NextPage } from "next";
import dynamic from "next/dynamic";
import { LegacyRef, useRef } from "react";
import ReactQuill from "react-quill";

import "react-quill/dist/quill.snow.css";

interface IWrappedComponent {
  forwardedRef: LegacyRef<ReactQuill>;
}

const QuillNoSSRWrapper = dynamic(
  async () => {
    const { default: RQ } = await import("react-quill");

    const QuillJS = ({ forwardedRef, ...props }: IWrappedComponent) => (
      <RQ ref={forwardedRef} {...props} />
    );
    return QuillJS;
  },
  { ssr: false }
);

const Home: NextPage = () => {
  const node = useRef<ReactQuill>(null);

  return <QuillNoSSRWrapper forwardedRef={node} />;
};

export default Home;

关于typescript - 我们如何在 Nextjs 动态导入中输入forwardRef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73781023/

相关文章:

javascript - 检查 Typescript 类是否已实例化

node.js - Rollup 不捆绑声明文件

reactjs - 阻塞渲染直到查询完成?

typescript - 在 typescript 2.0 中,如何为 @types npm 命名空间(DefinitelyTyped 存储库)中不可用的模块提供单个声明文件?

typescript - 如何在 Typescript 中使用 redux-thunk 使用 ThunkAction 正确键入 thunk?

typescript - 如何测试两种类型是否完全相同

angular - Angular 项目中的 Jest 和 Jasmine

javascript - Material-UI + Next js - TypeError : theme. spacing is not a function

reactjs - 构建并部署后,Tailwind css 无法在 Vercel 上运行

typescript - 如何根据数组的值定义类型?