You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Adyen create dropin报错"Cannot read properties of null (reading 'dropin')"如何解决?

问题根因说明

@adyen/adyen-web从v5.0.0版本开始,初始化API做了不兼容调整,这是你报错的核心原因,并非版本存在Promise实现异常:

  • v4.x版本中AdyenCheckout为同步构造函数,直接执行new AdyenCheckout(配置)即可直接获取可用的实例对象
  • v5.x版本中AdyenCheckout改为异步方法,执行后返回的是Promise对象,必须等待异步初始化完成,拿到resolve后的实例才能调用create方法创建组件
v5.x版本正确适配方案

在React代码中需要用异步逻辑等待初始化完成,示例如下:

import { useRef, useEffect } from 'react';
import { AdyenCheckout } from '@adyen/adyen-web';
import '@adyen/adyen-web/dist/adyen.css';

const PaymentComponent = () => {
  const adyenContainerRef = useRef(null);

  useEffect(() => {
    // 异步初始化Adyen
    const initDropin = async () => {
      const adyenConfig = {
        // 替换为你实际的配置参数,包含后端返回的session信息
        clientKey: '你的客户端密钥',
        environment: 'test',
        session: paymentSession,
        // 其他回调配置按需补充
      };
      // 关键:加await等待异步初始化完成获取实例
      const checkoutInstance = await AdyenCheckout(adyenConfig);
      checkoutInstance.create('dropin').mount(adyenContainerRef.current);
    };

    initDropin();
  }, []);

  return <div ref={adyenContainerRef} />;
};

你之前v5版本运行报错,是因为没有等待异步初始化完成,直接对返回的Promise对象调用create方法,此时实际的checkout实例还未生成、为null,才触发了对应的属性读取错误。

内容的提问来源于stack exchange,提问作者Persyl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:15:03