正如标题所说,我不能让hellosign-embeddednext一起工作

我的应用程序将通过CDN提供,所以如果它不能与SSR一起工作,我就不会吃蛋糕

const HelloSign: any = dynamic(
  (): any => {
    return import("hellosign-embedded")
  },
  { ssr: false }
)

export default function Home() {

  const client =
    typeof window !== "undefined"
      ? new HelloSign({
          allowCancel: false,
          clientId: "HELLO SIGN CLIENT ID", // DEV HelloSign Client ID
          skipDomainVerification: true,
        })
      : null

  return null
}

我一直有TypeError: HelloSign is not a constructor

errorImage

我还在GitHub上创建了this issue个,并提供了更多信息

推荐答案

编辑:

我现在明白了,事情变得Flutter 朔迷离了.hellosign-embedded引用window对象(即,导入只需在客户端编译阶段可见).我看到next/dynamic被用来导入一个模块.由于dynamic()返回的是ComponentType类型,而包含client的变量在Home函数中,因此我错误地认为您试图导入React组件.

事实证明,hellosign-embedded甚至不是一个react 成分,所以你不应该使用next/dynamic.您应该能够使用ES2020导入.您的pages/index.tsx文件将如下所示:

import type { NextPage } from "next";

const openDocument = async () => {
  // ES2020 dynamic import
  const HelloSign = (await import("hellosign-embedded")).default;

  const client = new HelloSign({
    allowCancel: false,
    clientId: "HELLO SIGN CLIENT ID", // DEV HelloSign Client ID
    skipDomainVerification: true,
  });

  client.open("https://www.example.com");
};

const Home: NextPage = () => {
  return <button onClick={() => openDocument()}>Open</button>;
};

export default Home;

无视旧答案:

HelloSign的类型为ComponentType,因此可以直接使用变量中存储的JSX元素:

// disregard: see edit above
// export default function Home() {
// 
//   const client =
//     typeof window !== "undefined" ? (
//       <HelloSign
//         allowCancel={false}
//         clientId="HELLO SIGN CLIENT ID" // DEV HelloSign Client ID
//         skipDomainVerification={true}
//       />
//     ) : null;
// 
//   return client;
// 
// };

Reactjs相关问答推荐

无法覆盖MUI工具栏上的左右填充,除非使用!重要

为什么这个'Suspense'子组件在挂起promise解决后会丢失它的状态,而不是呈现?<>

关于同一位置的不同组件实例的react S规则被视为相同组件

在Reaction常量函数中未更新状态变量

有没有办法将在服务器端全局获取的一些数据传递到Next&>13应用程序目录中的客户端组件?

获取更改后的状态值

我如何在不被 destruct 的情况下将导航栏固定在顶部?

Javascript - 正则表达式不适用于 MAC OS - 编码?

UseEffect 似乎不适用于页面的首次渲染

当从子状态更改复制时,react 父状态更改.我该如何防止这种情况?

面临 React 模式中点击外部条件的问题

FabricJS反序列化问题

如何在Next.js应用程序中为路由[slug]生成.html文件?

DatePicker MUI 如何在日历左侧显示清除文本

使用 React Router v6 监听来自不同组件的组件状态变化

如何将我的 ID 值传递给下一个组件?

如何从 extrareducer redux 更改对象中元素的值

CORS 政策:无访问控制允许来源-AWS 和 Vercel

单击按钮时获取react 表中每一行的属性

添加禁用的默认选项以 Select